source: trunk/CrypPlugins/Transposition/TranspositionSettings.cs @ 778

Last change on this file since 778 was 778, checked in by kohnen, 12 years ago

settings added

File size: 4.2 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Cryptool.PluginBase;
6using System.ComponentModel;
7
8namespace Transposition
9{
10    class TranspositionSettings : ISettings
11    {
12        # region private variables
13
14        private Boolean hasChanges = false;
15        private int selectedAction = 0;
16
17        private ReadInMode selectedReadIn = ReadInMode.byRow;
18        private PermutationMode selectedPermutation = PermutationMode.byColumn;
19        private ReadOutMode selectedReadOut = ReadOutMode.byColumn;
20       
21        # endregion
22
23        #region public enums
24
25        public enum ReadInMode { byRow = 0, byColumn = 1};
26        public enum PermutationMode { byRow = 0, byColumn = 1 };
27        public enum ReadOutMode { byRow = 0, byColumn = 1 };
28
29        # endregion
30
31        #region ISettings Member
32
33        [PropertySaveOrder(0)]
34        public bool HasChanges
35        {
36            get { return hasChanges; }
37            set { this.hasChanges = value; }
38        }
39
40        # endregion
41
42        # region Settings
43
44        [PropertySaveOrder(1)]
45        [ContextMenu("Action", "Select the Algorithm action", 1, DisplayLevel.Beginner, ContextMenuControlType.ComboBox, new int[] { 1, 2 }, "Encrypt", "Decrypt")]
46        [TaskPane("Action", "Select the Algorithm action", null, 1, false, DisplayLevel.Beginner, ControlType.ComboBox, new string[] { "Encrypt", "Decrypt" })]
47        public int Action
48        {
49            get { return this.selectedAction; }
50            set
51            {
52                if (value != selectedAction) HasChanges = true;
53                this.selectedAction = value;
54                OnPropertyChanged("Action");
55            }
56        }
57
58        [PropertySaveOrder(2)]
59        [ContextMenu("Read in", "Select read in mode", 2, DisplayLevel.Expert, ContextMenuControlType.ComboBox, null, new string[] { "by row", "by column"})]
60        [TaskPane("Read in", "Select read in mode", null, 2, false, DisplayLevel.Expert, ControlType.ComboBox, new string[] { "by row", "by column" })]
61        public int ReadIn
62        {
63            get { return (int) this.selectedReadIn; }
64            set
65            {
66                if ((ReadInMode)value != selectedReadIn) HasChanges = true;
67                this.selectedReadIn = (ReadInMode)value;
68                OnPropertyChanged("ReadIn");
69            }
70        }
71
72        [PropertySaveOrder(3)]
73        [ContextMenu("Permutation", "Select permutation type", 3, DisplayLevel.Expert, ContextMenuControlType.ComboBox, null, new string[] { "by row", "by column" })]
74        [TaskPane("Permutation", "Select permutation type", null, 3, false,DisplayLevel.Expert, ControlType.ComboBox, new string[] { "by row", "by column" })]
75        public int Permutation
76        {
77            get { return (int)this.selectedPermutation; }
78            set
79            {
80                if ((PermutationMode)value != selectedPermutation) HasChanges = true;
81                this.selectedPermutation= (PermutationMode)value;
82                OnPropertyChanged("Permutation");
83            }
84        }
85
86        [PropertySaveOrder(4)]
87        [ContextMenu("Read out", "Select read out type", 4, DisplayLevel.Expert, ContextMenuControlType.ComboBox, null, new string[] { "by row", "by column" })]
88        [TaskPane("Read out", "Select read out type", null, 4, false, DisplayLevel.Expert, ControlType.ComboBox, new string[] { "by row", "by column" })]
89        public int ReadOut
90        {
91            get { return (int)this.selectedReadOut; }
92            set
93            {
94                if ((ReadOutMode)value != selectedReadOut) HasChanges = true;
95                this.selectedReadOut= (ReadOutMode)value;
96                OnPropertyChanged("ReadOut");
97            }
98        }
99       
100        protected void OnPropertyChanged(string name)
101        {
102            if (PropertyChanged != null)
103            {
104                PropertyChanged(this, new PropertyChangedEventArgs(name));
105            }
106        }
107        #endregion
108
109        #region INotifyPropertyChanged Member
110
111        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
112
113        #endregion
114    }
115}
Note: See TracBrowser for help on using the repository browser.