source: trunk/CrypPlugins/PlayfairAnalysis/PlayfairAnalysisSettings.cs @ 2334

Last change on this file since 2334 was 2334, checked in by Matthäus Wander, 11 years ago

removed 1006 occurences of DisplayLevel in 218 files (see #122)

File size: 5.8 KB
Line 
1/*
2   Copyright 2010 Christoph Hartmann, Johannes Gutenberg-Universität Mainz
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.ComponentModel;
19using System.Diagnostics;
20using System.Linq;
21using System.Text;
22using Cryptool.PluginBase;
23using System.Windows;
24
25namespace Cryptool.Plugins.PlayfairAnalysis
26{
27    public class PlayfairAnalysisSettings : ISettings
28    {
29        #region Private Variables
30
31        private enum supportedMatrixSizes {MatrixSize5x5, MatrixSize6x6}
32        private bool hasChanges = false;
33        private int heapSize = 5000;
34        private int matrixSize = (int)supportedMatrixSizes.MatrixSize5x5;
35        private int language;
36        private int useCustomStatistic;
37       
38        #endregion
39
40        #region Constructor
41
42        public PlayfairAnalysisSettings()
43        {
44
45        }
46
47        #endregion
48
49
50        #region TaskPane Settings
51
52        /// <summary>
53        /// HOWTO: This is an example for a setting entity shown in the settings pane on the right of the CT2 main window.
54        /// This example setting uses a number field input, but there are many more input types available, see ControlType enumeration.
55        /// </summary>
56        [TaskPane("Heap Size", "Number of keys stored in heap", null, 1, false, ControlType.TextBox, ValidationType.RangeInteger, 1, Int32.MaxValue)]
57        public int HeapSize
58        {
59            get
60            {
61                return heapSize;
62            }
63            set
64            {               
65                if (heapSize != value)
66                {                   
67                    heapSize = value;
68                    hasChanges = true;
69                }
70            }
71        }
72
73        [TaskPane("Bigraph Statistic", "Bigraph Statistic to be used", null, 2, false, ControlType.RadioButton, new string[] { "Default", "Custom" })]
74        public int UseCustomStatistic
75        {
76            get
77            {
78                return useCustomStatistic;
79            }
80            set
81            {
82                if (useCustomStatistic != value)
83                {
84                    if (value == 0)
85                    {
86                        if (TaskPaneAttributeChanged != null)
87                        {
88                            TaskPaneAttributeChanged(this, new TaskPaneAttributeChangedEventArgs(new TaskPaneAttribteContainer("MatrixSize", Visibility.Visible)));
89                            TaskPaneAttributeChanged(this, new TaskPaneAttributeChangedEventArgs(new TaskPaneAttribteContainer("Language", Visibility.Visible)));
90                        }
91                    }
92                    else
93                    {
94                        if (TaskPaneAttributeChanged != null)
95                        {
96                            TaskPaneAttributeChanged(this, new TaskPaneAttributeChangedEventArgs(new TaskPaneAttribteContainer("MatrixSize", Visibility.Collapsed)));
97                            TaskPaneAttributeChanged(this, new TaskPaneAttributeChangedEventArgs(new TaskPaneAttribteContainer("Language", Visibility.Collapsed)));
98                        }
99                    }
100
101                    useCustomStatistic = value;
102                    hasChanges = true;
103                }
104            }
105        }
106
107        [TaskPane("Matrix Size", "Size of Matrix used for Encryption", null, 3, false, ControlType.RadioButton, new string[] { "5 x 5", "6 x 6" })]
108        public int MatrixSize
109        {
110            get
111            {
112                return matrixSize;
113            }
114            set
115            {
116                if (matrixSize != value)
117                {
118                    matrixSize = value;
119                    hasChanges = true;                   
120                }
121            }
122        }
123
124        [TaskPane("Language", "Assumed Language of Ciphertext", null, 4, false, ControlType.RadioButton, new string[] { "German", "English" })]
125        public int Language
126        {
127            get
128            {
129                return language;
130            }
131            set
132            {
133                if (language != value)
134                {
135                    language = value;
136                    hasChanges = true;
137                }
138            }
139        }
140
141
142
143        #endregion
144
145        #region ISettings Members
146
147        /// <summary>
148        /// HOWTO: This flags indicates whether some setting has been changed since the last save.
149        /// If a property was changed, this becomes true, hence CrypTool will ask automatically if you want to save your changes.
150        /// </summary>
151        public bool HasChanges
152        {
153            get
154            {
155                return hasChanges;
156            }
157            set
158            {
159                hasChanges = value;
160            }
161        }
162
163        #endregion
164
165        #region INotifyPropertyChanged Members
166
167        public event PropertyChangedEventHandler PropertyChanged;
168        public event TaskPaneAttributeChangedHandler TaskPaneAttributeChanged;
169
170       
171        protected void OnPropertyChanged(string name)
172        {
173            if (PropertyChanged != null)
174            {
175                PropertyChanged(this, new PropertyChangedEventArgs(name));
176            }
177        }
178
179        #endregion
180               
181    }
182}
Note: See TracBrowser for help on using the repository browser.