source: trunk/CrypPlugins/KeySearcher/KeySearcherSettings.cs @ 754

Last change on this file since 754 was 754, checked in by Sven Rech, 12 years ago

added core selector in KeySearcherSettings (has no effect yet)

File size: 3.1 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Cryptool.PluginBase;
6using System.ComponentModel;
7using System.Collections.ObjectModel;
8
9namespace KeySearcher
10{
11    public class KeySearcherSettings : ISettings
12    {
13        private KeySearcher keysearcher;
14        private int coresUsed;
15
16        public KeySearcherSettings(KeySearcher ks)
17        {
18            keysearcher = ks;
19            CoresAvailable.Clear();
20            for (int i = 0; i < Environment.ProcessorCount; i++)
21                CoresAvailable.Add((i + 1).ToString());
22            CoresUsed = Environment.ProcessorCount - 1;
23        }
24
25        private string key;
26        [TaskPane("Key", "Key pattern used to bruteforce", null, 1, false, DisplayLevel.Beginner, ControlType.TextBox)]
27        public String Key
28        {
29            get
30            {
31                return key;
32            }
33            set
34            {
35                key = value;
36                OnPropertyChanged("Key");
37                if (!(keysearcher.Pattern != null && keysearcher.Pattern.testKey(value)))
38                    keysearcher.GuiLogMessage("Wrong key pattern!", NotificationLevel.Error);
39            }
40        }
41
42        [TaskPane("Reset", "Reset Key", null, 2, false, DisplayLevel.Beginner, ControlType.Button)]
43        public void Reset()
44        {
45            Key = keysearcher.Pattern.giveWildcardKey();
46        }
47       
48        [TaskPane("CoresUsed", "Choose how many cores should be used", null, 3, false, DisplayLevel.Beginner, ControlType.DynamicComboBox, new string[] { "CoresAvailable" })]
49        public int CoresUsed
50        {
51            get { return this.coresUsed; }
52            set
53            {
54                if (value != this.coresUsed)
55                {
56                    this.coresUsed = value;
57                    OnPropertyChanged("CoresUsed");
58                    HasChanges = true;
59                }
60            }
61        }
62
63        private ObservableCollection<string> coresAvailable = new ObservableCollection<string>();
64        public ObservableCollection<string> CoresAvailable
65        {
66            get { return coresAvailable; }
67            set
68            {
69                if (value != coresAvailable)
70                {
71                    coresAvailable = value;
72                }
73                OnPropertyChanged("CoresAvailable");
74            }
75        }
76       
77        #region ISettings Members
78
79        private bool hasChanges;
80
81        public bool HasChanges
82        {
83            get
84            {
85                return hasChanges;
86            }
87            set
88            {
89                hasChanges = value;
90                OnPropertyChanged("HasChanges");
91            }
92        }
93
94        #endregion
95
96        #region INotifyPropertyChanged Members
97
98        public event PropertyChangedEventHandler PropertyChanged;
99
100        private void OnPropertyChanged(string p)
101        {
102            if (PropertyChanged != null)
103            {
104                PropertyChanged(this, new PropertyChangedEventArgs(p));
105            }
106        }
107
108        #endregion
109    }
110}
Note: See TracBrowser for help on using the repository browser.