source: trunk/CrypPlugins/SZ42/LorenzSettings.cs @ 1941

Last change on this file since 1941 was 1941, checked in by Wilmer Andres Daza Gomez, 11 years ago

Begin of the plugin SZ42 German Lorenz Machine
until now the plugin works fine but need to be test it

File size: 5.8 KB
Line 
1/* HOWTO: Change year, author name and organization.
2   Copyright 2010 Your Name, University of Duckburg
3
4   Licensed under the Apache License, Version 2.0 (the "License");
5   you may not use this file except in compliance with the License.
6   You may obtain a copy of the License at
7
8       http://www.apache.org/licenses/LICENSE-2.0
9
10   Unless required by applicable law or agreed to in writing, software
11   distributed under the License is distributed on an "AS IS" BASIS,
12   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   See the License for the specific language governing permissions and
14   limitations under the License.
15*/
16using System;
17using System.Collections.Generic;
18using System.Linq;
19using System.Text;
20using Cryptool.PluginBase;
21using System.ComponentModel;
22
23namespace Cryptool.Plugins.SZ42
24{
25    public class LorenzSettings : ISettings
26    {
27        #region Private Variables
28
29        private int limitation = 0;
30        private string pattern = "";
31        private string position = "";
32        private int action = 0;
33        private bool inputParsed = false;
34        private bool outputParsed = false;
35        private bool hasChanges = false;
36
37        #endregion
38
39        #region Public Interface
40
41        /// <summary>
42        /// We use this delegate to send log messages from the settings class to the Caesar plugin
43        /// </summary>
44        public delegate void LorenzLogMessage(string msg, NotificationLevel loglevel);
45        public event LorenzLogMessage LogMessage;
46        public delegate void LorenzReExecute();
47        public event LorenzReExecute ReExecute;
48
49        #endregion
50
51        #region TaskPane Settings
52
53        [TaskPane("Action", "Select the Algorithm action", null, 0, true, DisplayLevel.Beginner, ControlType.ComboBox, new string[] { "Encrypt", "Decrypt" })]
54        public int Action
55        {
56            get
57            {
58                return this.action;
59            }
60            set
61            {
62                if (value != action) HasChanges = true;
63                this.action = value;
64                OnPropertyChanged("Action");
65
66                if (ReExecute != null) ReExecute();
67            }
68        }
69
70        [TaskPane("Limitation", "Select the limitation type", null, 1, true, DisplayLevel.Beginner, ControlType.ComboBox, new string[] { "Chi2 One Back", "None" })]
71        public int Limitation
72        {
73            get
74            {
75                return this.limitation;
76            }
77            set
78            {
79                if (value != limitation) HasChanges = true;
80                this.limitation = value;
81                OnPropertyChanged("Limitation");
82
83                if (ReExecute != null) ReExecute();
84            }
85        }
86
87        [TaskPane("Wheels Pattern", "Set the wheels pattern", null, 2, true, DisplayLevel.Beginner, ControlType.TextBox, "")]
88        public string Pattern
89        {
90            get
91            {
92                return this.pattern;
93            }
94            set
95            {
96                if (value != pattern) HasChanges = true;
97                this.pattern = value;
98                OnPropertyChanged("Pattern");
99
100                if (ReExecute != null) ReExecute();
101            }
102        }
103
104        [TaskPane("Wheels Position", "Set the wheels position", null, 3, true, DisplayLevel.Beginner, ControlType.TextBox, "")]
105        public string Position
106        {
107            get
108            {
109                return this.position;
110            }
111            set
112            {
113                if (value != position) HasChanges = true;
114                this.position = value;
115                OnPropertyChanged("Position");
116
117                if (ReExecute != null) ReExecute();
118            }
119        }
120
121        [TaskPane("Input Parsed", "Set if the input is parsed or not", null, 4, true, DisplayLevel.Beginner, ControlType.CheckBox, "")]
122        public bool InputParsed
123        {
124            get
125            {
126                return this.inputParsed;
127            }
128            set
129            {
130                if (value != inputParsed) HasChanges = true;
131                this.inputParsed = value;
132                OnPropertyChanged("InputParsed");
133
134                if (ReExecute != null) ReExecute();
135            }
136        }
137
138        [TaskPane("Output Parsed", "Set if the output is parsed or not", null, 5, true, DisplayLevel.Beginner, ControlType.CheckBox, "")]
139        public bool OutputParsed
140        {
141            get
142            {
143                return this.outputParsed;
144            }
145            set
146            {
147                if (value != outputParsed) HasChanges = true;
148                this.outputParsed = value;
149                OnPropertyChanged("OutputParsed");
150
151                if (ReExecute != null) ReExecute();
152            }
153        }
154       
155
156        #endregion
157
158        #region ISettings Members
159
160        /// <summary>
161        /// HOWTO: This flags indicates whether some setting has been changed since the last save.
162        /// If a property was changed, this becomes true, hence CrypTool will ask automatically if you want to save your changes.
163        /// </summary>
164        public bool HasChanges
165        {
166            get
167            {
168                return hasChanges;
169            }
170            set
171            {
172                hasChanges = value;
173            }
174        }
175
176        #endregion
177
178        #region INotifyPropertyChanged Members
179
180        public event PropertyChangedEventHandler PropertyChanged;
181
182        protected void OnPropertyChanged(string name)
183        {
184            if (PropertyChanged != null)
185            {
186                PropertyChanged(this, new PropertyChangedEventArgs(name));
187            }
188        }
189
190        #endregion
191    }
192}
Note: See TracBrowser for help on using the repository browser.