source: trunk/CrypPlugins/WorkspaceManager/WorkspaceManagerSettings.cs @ 2280

Last change on this file since 2280 was 2180, checked in by kopal, 11 years ago
File size: 5.0 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Cryptool.PluginBase;
6using System.ComponentModel;
7using System.Threading;
8using System.Windows;
9using System.Windows.Media;
10using System.Windows.Markup;
11using System.IO;
12using WorkspaceManager.Properties;
13
14namespace WorkspaceManager
15{
16    class WorkspaceManagerSettings : ISettings
17    {
18        #region ISettings Members
19        private bool hasChanges = false;
20
21        private WorkspaceManager WorkspaceManager { get; set; }
22
23        public WorkspaceManagerSettings(WorkspaceManager manager)
24        {
25            this.Threads = "" + System.Environment.ProcessorCount;
26            this.WorkspaceManager = manager;
27        }
28
29        public bool HasChanges
30        {
31            get
32            {
33                return hasChanges;
34            }
35            set
36            {
37                hasChanges = value;
38            }
39        }
40
41       [TaskPane("GuiUpdateInterval", "The interval the gui should be updated in miliseconds.", null, 1, false, DisplayLevel.Beginner, ControlType.TextBox)]
42        public String GuiUpdateInterval
43        {
44            get
45            {
46                return Settings.Default.GuiUpdateInterval;
47            }
48            set
49            {
50                Settings.Default.GuiUpdateInterval = value;
51                Settings.Default.Save();
52                OnPropertyChanged("GuiUpdateInterval");
53            }
54        }
55
56        [TaskPane("SleepTime", "The time which the execution will sleep after executing a plugin.", null, 1, false, DisplayLevel.Beginner, ControlType.TextBox)]
57        public String SleepTime
58        {
59            get
60            {
61                return Settings.Default.SleepTime;
62            }
63            set
64            {
65                Settings.Default.SleepTime = value;
66                Settings.Default.Save();
67                OnPropertyChanged("SleepTime");
68            }
69        }
70
71        [TaskPane("Threads", "The amount of used threads for scheduling.", null, 1, false, DisplayLevel.Beginner, ControlType.TextBox)]
72        public String Threads
73        {
74            get
75            {
76                return Settings.Default.Threads;
77            }
78            set
79            {
80                Settings.Default.Threads = value;
81                Settings.Default.Save();
82                OnPropertyChanged("Threads");
83            }
84        }
85
86        [TaskPane("ThreadPriority", "Should the event handling be synchronous?", null, 1, false, DisplayLevel.Beginner, ControlType.ComboBox, new String[] { "AboveNormal", "BelowNormal", "Highest", "Lowest", "Normal" })]
87        public int ThreadPriority
88        {
89            get
90            {
91                return Settings.Default.ThreadPriority;
92            }
93            set
94            {
95                Settings.Default.ThreadPriority = value;
96                Settings.Default.Save();
97                OnPropertyChanged("ThreadPriority");
98            }
99        } 
100
101        [TaskPane("BenchmarkPlugins", "Should the WorkspaceManager benchmark the amount of executed plugins per second?", null, 1, false, DisplayLevel.Beginner, ControlType.CheckBox)]
102        public bool BenchmarkPlugins
103        {
104            get
105            {
106                return Settings.Default.BenchmarkPlugins;
107            }
108            set
109            {
110                Settings.Default.BenchmarkPlugins = value;
111                Settings.Default.Save();
112                OnPropertyChanged("BenchmarkPlugins");
113            }
114        }
115
116        [TaskPane("SynchronousEvents", "Should the event handling be synchronous?", null, 1, false, DisplayLevel.Beginner, ControlType.CheckBox)]
117        public bool SynchronousEvents
118        {
119            get
120            {
121                return Settings.Default.SynchronousEvents;
122            }
123            set
124            {
125                Settings.Default.SynchronousEvents = value;
126                Settings.Default.Save();
127                OnPropertyChanged("SynchronousEvents");
128            }
129        }
130
131        [TaskPane("LogLevel", "Should the event handling be synchronous?", null, 1, false, DisplayLevel.Beginner, ControlType.ComboBox, new string[] { "Debug", "Info", "Warning", "Error"})]
132        public int LogLevel
133        {
134            get
135            {
136                return Settings.Default.LogLevel;
137            }
138            set
139            {
140                Settings.Default.LogLevel = value;
141                Settings.Default.Save();
142                OnPropertyChanged("LogLevel");
143            }
144        }
145       
146        #endregion
147
148        #region INotifyPropertyChanged Members
149
150        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
151       
152        private void OnPropertyChanged(string p)
153        {
154            if (PropertyChanged != null)
155                PropertyChanged(this, new PropertyChangedEventArgs(p));
156        }
157
158        #endregion
159    }
160}
Note: See TracBrowser for help on using the repository browser.