source: trunk/CrypPlugins/PKCS1/WpfVisualization/Pkcs1Control.xaml.cs @ 1885

Last change on this file since 1885 was 1885, checked in by schomburg, 11 years ago

added english menus
changed GUI a bit
added additional input for bleichenbacher signatures

File size: 7.1 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.Windows;
6using System.Windows.Controls;
7using System.Windows.Data;
8using System.Windows.Documents;
9using System.Windows.Input;
10using System.Windows.Media;
11using System.Windows.Media.Imaging;
12using System.Windows.Navigation;
13using System.Windows.Shapes;
14using System.Threading;
15using Cryptool.PluginBase;
16using Cryptool.PluginBase.Tool;
17using PKCS1.WpfControls;
18using PKCS1.WpfControls.Start;
19using PKCS1.WpfControls.SigGen;
20using PKCS1.WpfControls.SigGenFake;
21using PKCS1.WpfControls.SigVal;
22using PKCS1.WpfControls.RsaKeyGen;
23using PKCS1.Library;
24using PKCS1.WpfVisualization.Navigation;
25using PKCS1.WpfVisualization;
26using PKCS1.Resources.lang.Gui;
27
28
29namespace PKCS1.WpfVisualization
30{
31    /// <summary>
32    /// Interaktionslogik für pkcs1control.xaml
33    /// </summary>
34    public partial class Pkcs1Control : UserControl
35    {
36        private IPkcs1UserControl m_ActualControl = null;
37        private IPkcs1UserControl m_RsaKeyGenControl = null;
38        private IPkcs1UserControl m_StartControl = null;
39        private IPkcs1UserControl m_SigGenControl = null;
40        private IPkcs1UserControl m_SigGenFakeBleichenbControl = null;
41        private IPkcs1UserControl m_SigGenFakeShortControl = null;
42        private IPkcs1UserControl m_SigValControl = null;
43
44        public Pkcs1Control()
45        {
46            InitializeComponent();
47            Initialize();
48        }
49
50        private void Initialize()
51        {
52            navigator.OnNavigate += Navigate;
53
54            Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (SendOrPostCallback)delegate
55            {
56                Navigate(NavigationCommandType.Start);
57            }, null);
58        }
59
60        private void Navigate(NavigationCommandType type)
61        {
62            if (m_ActualControl != null)
63            {
64                m_ActualControl.Dispose();
65            }
66            SetTitle(type);
67
68            switch (type)
69            {
70                case NavigationCommandType.RsaKeyGen:
71                    if (m_RsaKeyGenControl == null) m_RsaKeyGenControl = new RsaKeyGenControl();
72                    SetUserControl(m_RsaKeyGenControl);
73                    break;
74                case NavigationCommandType.SigGen:
75                    if (m_SigGenControl == null) m_SigGenControl = new SigGenPkcs1Control();
76                    SetUserControl(m_SigGenControl);
77                    break;
78                case NavigationCommandType.SigGenFakeBleichenb:
79                    if (m_SigGenFakeBleichenbControl == null) m_SigGenFakeBleichenbControl = new SigGenFakeBleichenbControl();
80                    SetUserControl(m_SigGenFakeBleichenbControl);
81                    break;
82                case NavigationCommandType.SigGenFakeShort:
83                    if (m_SigGenFakeShortControl == null) m_SigGenFakeShortControl = new SigGenFakeShortControl();
84                    SetUserControl(m_SigGenFakeShortControl);
85                    break;
86                case NavigationCommandType.SigVal:
87                    if (m_SigValControl == null) m_SigValControl = new SigValControl();
88                    SetUserControl(m_SigValControl);
89                    break;
90                case NavigationCommandType.Start:
91                    if (m_StartControl == null) m_StartControl = new StartControl();
92                    SetUserControl(m_StartControl);
93                    break;
94            }
95
96        }
97
98        private void SetTitle(NavigationCommandType type)
99        {
100            switch (type)
101            {
102                case NavigationCommandType.RsaKeyGen:
103                    lblTitel.Content = RsaKeyGenCtrl.title;                     
104                    break;
105                case NavigationCommandType.Start:
106                    lblTitel.Content = Common.startTitle;
107                    break;
108                case NavigationCommandType.SigGen:
109                    lblTitel.Content = SigGenRsaCtrl.title;
110                    break;
111                case NavigationCommandType.SigGenFakeBleichenb:
112                    lblTitel.Content = SigGenBleichenbCtrl.title;
113                    break;
114                case NavigationCommandType.SigGenFakeShort:
115                    lblTitel.Content = SigGenKuehnCtrl.title;
116                    break;
117                case NavigationCommandType.SigVal:
118                    lblTitel.Content = SigValCtrl.title;
119                    break;
120            }
121        }
122
123        private void SetUserControl(IPkcs1UserControl control)
124        {
125            SetUserControl(control, 0);
126        }
127
128        private void SetUserControl(IPkcs1UserControl control, int tab)
129        {
130            (control as UserControl).HorizontalAlignment = HorizontalAlignment.Stretch;
131            (control as UserControl).VerticalAlignment = VerticalAlignment.Stretch;
132            ContentArea.Content = control as UserControl;
133           
134            m_ActualControl = control;
135        }
136
137
138        private void UserControl_Loaded(object sender, RoutedEventArgs e)
139        {
140            //kein code
141        }
142
143        internal void Dispose()
144        {
145            if (m_RsaKeyGenControl != null) m_RsaKeyGenControl.Dispose();
146            if (m_StartControl != null) m_StartControl.Dispose();
147            if (m_SigGenControl != null) m_SigGenControl.Dispose();
148            if (m_SigGenFakeBleichenbControl != null) m_SigGenFakeBleichenbControl.Dispose();
149            if (m_SigGenFakeShortControl != null) m_SigGenFakeShortControl.Dispose();
150            if (m_SigValControl != null) m_SigValControl.Dispose();
151
152            m_RsaKeyGenControl = null;
153            m_StartControl = null;
154            m_SigGenControl = null;
155            m_SigGenFakeBleichenbControl = null;
156            m_SigGenFakeShortControl = null;
157            m_SigValControl = null;
158        }
159
160        private void Image_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
161        {
162            PKCS1.OnlineHelp.OnlineHelpActions action = PKCS1.OnlineHelp.OnlineHelpActions.StartControl;
163
164            if (m_ActualControl.GetType() == typeof(RsaKeyGenControl))
165            {
166                action = PKCS1.OnlineHelp.OnlineHelpActions.KeyGen;
167            }
168            else if (m_ActualControl.GetType() == typeof(SigGenPkcs1Control))
169            {
170                action = PKCS1.OnlineHelp.OnlineHelpActions.SigGen;
171            }
172            else if (m_ActualControl.GetType() == typeof(SigGenFakeBleichenbControl))
173            {
174                action = PKCS1.OnlineHelp.OnlineHelpActions.SigGenFakeBleichenbacher;
175            }
176            else if (m_ActualControl.GetType() == typeof(SigGenFakeShortControl))
177            {
178                action = PKCS1.OnlineHelp.OnlineHelpActions.SigGenFakeKuehn;
179            }
180            else if (m_ActualControl.GetType() == typeof(SigValControl))
181            {
182                action = PKCS1.OnlineHelp.OnlineHelpActions.SigVal;
183            }
184
185            e.Handled = true;
186            OnlineHelp.OnlineHelpAccess.ShowOnlineHelp(action);
187        }
188    }
189}
Note: See TracBrowser for help on using the repository browser.