source: trunk/PKCS1/WpfVisualization/Pkcs1Control.xaml.cs @ 1650

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

initial commit of PKCS1 Plugin

File size: 7.6 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;
26
27
28namespace PKCS1.WpfVisualization
29{
30    /// <summary>
31    /// Interaktionslogik für pkcs1control.xaml
32    /// </summary>
33    public partial class Pkcs1Control : UserControl
34    {
35        private IPkcs1UserControl m_ActualControl = null;
36        private IPkcs1UserControl m_RsaKeyGenControl = null;
37        private IPkcs1UserControl m_StartControl = null;
38        private IPkcs1UserControl m_SigGenControl = null;
39        private IPkcs1UserControl m_SigGenFakeBleichenbControl = null;
40        private IPkcs1UserControl m_SigGenFakeShortControl = null;
41        private IPkcs1UserControl m_SigValControl = null;
42
43        //public event GuiLogNotificationEventHandler OnGuiLogNotificationOccured;
44
45        public Pkcs1Control()
46        {
47            InitializeComponent();
48            Initialize();
49        }
50
51        private void Initialize()
52        {
53            //ControlHandler.Dispatcher = this.Dispatcher;
54            navigator.OnNavigate += Navigate;
55
56            Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (SendOrPostCallback)delegate
57            {
58                Navigate(NavigationCommandType.Start);
59            }, null);
60            //(m_StartControl as StartControl).OnStartpageLinkClick += new Navigate(Navigate);
61            //this.MouseRightButtonDown += new MouseButtonEventHandler(PrimesControl_MouseRightButtonDown);
62        }
63
64        private void Navigate(NavigationCommandType type)
65        {
66            if (m_ActualControl != null)
67            {
68                m_ActualControl.Dispose();
69            }
70            SetTitle(type);
71
72            switch (type)
73            {
74                case NavigationCommandType.RsaKeyGen:
75                    if (m_RsaKeyGenControl == null) m_RsaKeyGenControl = new RsaKeyGenControl();
76                    SetUserControl(m_RsaKeyGenControl);
77                    break;
78                case NavigationCommandType.SigGen:
79                    if (m_SigGenControl == null) m_SigGenControl = new SigGenPkcs1Control();
80                    SetUserControl(m_SigGenControl);
81                    break;
82                case NavigationCommandType.SigGenFakeBleichenb:
83                    if (m_SigGenFakeBleichenbControl == null) m_SigGenFakeBleichenbControl = new SigGenFakeBleichenbControl();
84                    SetUserControl(m_SigGenFakeBleichenbControl);
85                    break;
86                case NavigationCommandType.SigGenFakeShort:
87                    if (m_SigGenFakeShortControl == null) m_SigGenFakeShortControl = new SigGenFakeShortControl();
88                    SetUserControl(m_SigGenFakeShortControl);
89                    break;
90                case NavigationCommandType.SigVal:
91                    if (m_SigValControl == null) m_SigValControl = new SigValControl();
92                    SetUserControl(m_SigValControl);
93                    break;
94                case NavigationCommandType.Start:
95                    if (m_StartControl == null) m_StartControl = new StartControl();
96                    SetUserControl(m_StartControl);
97                    break;
98            }
99
100        }
101
102        private void SetTitle(NavigationCommandType type)
103        {
104            switch (type)
105            {
106                case NavigationCommandType.RsaKeyGen:
107                    lblTitel.Content = "RSA-Schlüssel generieren";
108                    break;
109                case NavigationCommandType.Start:
110                    lblTitel.Content = "Startseite";
111                    break;
112                case NavigationCommandType.SigGen:
113                    lblTitel.Content = "PKCS #1-Signatur generieren";
114                    break;
115                case NavigationCommandType.SigGenFakeBleichenb:
116                    lblTitel.Content = "Bleichenbacher Angriff";
117                    break;
118                case NavigationCommandType.SigGenFakeShort:
119                    lblTitel.Content = "Angriff mit kürzeren Schlüsseln";
120                    break;
121                case NavigationCommandType.SigVal:
122                    lblTitel.Content = "PKCS #1-Signatur validieren";
123                    break;
124            }
125        }
126
127        private void SetUserControl(IPkcs1UserControl control)
128        {
129            SetUserControl(control, 0);
130        }
131
132        private void SetUserControl(IPkcs1UserControl control, int tab)
133        {
134            /*if (tab >= 0)
135            {
136                try
137                {
138                    control.SetTab(tab);
139                }
140                catch { }
141            }*/
142            (control as UserControl).HorizontalAlignment = HorizontalAlignment.Stretch;
143            (control as UserControl).VerticalAlignment = VerticalAlignment.Stretch;
144            ContentArea.Content = control as UserControl;
145           
146            m_ActualControl = control;
147        }
148
149
150        private void UserControl_Loaded(object sender, RoutedEventArgs e)
151        {
152            //kein code
153        }
154
155        internal void Dispose()
156        {
157            if (m_RsaKeyGenControl != null) m_RsaKeyGenControl.Dispose();
158            if (m_StartControl != null) m_StartControl.Dispose();
159            if (m_SigGenControl != null) m_SigGenControl.Dispose();
160            if (m_SigGenFakeBleichenbControl != null) m_SigGenFakeBleichenbControl.Dispose();
161            if (m_SigGenFakeShortControl != null) m_SigGenFakeShortControl.Dispose();
162            if (m_SigValControl != null) m_SigValControl.Dispose();
163
164            m_RsaKeyGenControl = null;
165            m_StartControl = null;
166            m_SigGenControl = null;
167            m_SigGenFakeBleichenbControl = null;
168            m_SigGenFakeShortControl = null;
169            m_SigValControl = null;
170        }
171
172        private void Image_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
173        {
174            PKCS1.OnlineHelp.OnlineHelpActions action = PKCS1.OnlineHelp.OnlineHelpActions.StartControl;
175
176            if (m_ActualControl.GetType() == typeof(RsaKeyGenControl))
177            {
178                action = PKCS1.OnlineHelp.OnlineHelpActions.KeyGen;
179            }
180            else if (m_ActualControl.GetType() == typeof(SigGenPkcs1Control))
181            {
182                action = PKCS1.OnlineHelp.OnlineHelpActions.SigGen;
183            }
184            else if (m_ActualControl.GetType() == typeof(SigGenFakeBleichenbControl))
185            {
186                action = PKCS1.OnlineHelp.OnlineHelpActions.SigGenFakeBleichenbacher;
187            }
188            else if (m_ActualControl.GetType() == typeof(SigGenFakeShortControl))
189            {
190                action = PKCS1.OnlineHelp.OnlineHelpActions.SigGenFakeKuehn;
191            }
192            else if (m_ActualControl.GetType() == typeof(SigValControl))
193            {
194                action = PKCS1.OnlineHelp.OnlineHelpActions.SigVal;
195            }
196
197            e.Handled = true;
198            OnlineHelp.OnlineHelpAccess.ShowOnlineHelp(action);
199        }
200    }
201}
Note: See TracBrowser for help on using the repository browser.