source: trunk/CrypPlugins/BooleanOperators/BoolButton.cs @ 760

Last change on this file since 760 was 760, checked in by weyers, 12 years ago

PreVersion Button update

File size: 4.8 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.Windows;
6using System.Windows.Controls;
7using System.ComponentModel;
8using System.Windows.Input;
9
10using Cryptool;
11using Cryptool.PluginBase;
12using Cryptool.PluginBase.Cryptography;
13using Cryptool.PluginBase.Miscellaneous;
14using Cryptool.Plugins.BooleanOperators;
15using Cryptool.PluginBase.IO;
16
17using BooleanOperators;
18
19
20
21
22
23namespace Cryptool.Plugins.BoolButton
24{
25    [Author("Julian Weyers", "julian.weyers@cryptool.org", "Uni Duisburg-Essen", "http://www.uni-duisburg-essen.de")]
26    [PluginInfo(true, "Boolean Button", "Boolean Button", "BooleanOperators/DetailedDescription/Description.xaml", "BooleanOperators/icons/false.png", "BooleanOperators/icons/true.png")]
27
28    public class BoolButton : IInput
29    {
30        private BoolButtonSettings settings;
31        private Boolean output = true;
32        private ButtonInputPresentation myButton;
33       
34        public BoolButton()
35        {
36            this.settings = new BoolButtonSettings();           
37            myButton = new ButtonInputPresentation();
38            Presentation = myButton;
39            myButton.StatusChanged += new EventHandler(myButton_StatusChanged);
40       }
41
42        private void myButton_StatusChanged(object sender, EventArgs e)
43        {
44            Execute();
45        }
46
47     
48        [PropertyInfo(Direction.OutputData, "Output", "Output", "", false, false, DisplayLevel.Beginner, QuickWatchFormat.None, null)] 
49        public Boolean Output
50        {
51            get
52            {
53                return this.output;
54            }
55            set
56            {
57                this.output = value;
58                OnPropertyChange("Output");
59            }
60        }
61
62        #region IPlugin Member
63       
64       
65
66        public void Dispose()
67        {
68            //throw new NotImplementedException(); 
69        }
70
71        public void Execute()
72        {
73           
74            if (myButton.Value)
75            {
76                settings_OnPluginStatusChanged(this, new StatusEventArgs(StatusChangedMode.ImageUpdate, 0));
77            }
78            if (!myButton.Value)
79            {               
80                settings_OnPluginStatusChanged(this, new StatusEventArgs(StatusChangedMode.ImageUpdate, 1));
81            }
82
83            Output = myButton.Value;
84            ProgressChanged(1, 1);
85        }
86
87        public void Initialize()
88        {
89           // Output = true;
90           // if (myButton.buttonval == true)
91           // {
92           //     Output = false;
93           // }
94           // if (myButton.buttonval == false)
95           // {
96           //     Output = true;
97           // }
98           // // not working, see ticket #80
99           //// settings_OnPluginStatusChanged(this, new StatusEventArgs(StatusChangedMode.ImageUpdate, settings.Value));
100
101        }
102
103        public void Pause()
104        {
105        }
106
107        public void PostExecution()
108        {
109        }
110
111        public void PreExecution()
112        {
113        }
114
115        public UserControl Presentation
116        { 
117            get; 
118            private set; 
119        }
120
121        public System.Windows.Controls.UserControl QuickWatchPresentation
122        {
123           
124            get { return Presentation; }
125        }
126
127        public ISettings Settings
128        {
129            get { return this.settings; }
130            set { this.settings = (BoolButtonSettings)value; }
131        }
132
133        public void Stop()
134        {
135        }
136
137        #endregion
138
139        #region event handling
140
141        public event GuiLogNotificationEventHandler OnGuiLogNotificationOccured;
142        public event PluginProgressChangedEventHandler OnPluginProgressChanged;
143        public event StatusChangedEventHandler OnPluginStatusChanged;
144        public event PropertyChangedEventHandler PropertyChanged;
145
146        private void OnPropertyChange(String propertyname)
147        {
148            EventsHelper.PropertyChanged(PropertyChanged, this, new PropertyChangedEventArgs(propertyname));
149        }
150
151        private void settings_OnPluginStatusChanged(IPlugin sender, StatusEventArgs args)
152        {
153            if (OnPluginStatusChanged != null) OnPluginStatusChanged(this, args);
154        }
155
156        private void ProgressChanged(double value, double max)
157        {
158            EventsHelper.ProgressChanged(OnPluginProgressChanged, this, new PluginProgressEventArgs(value, max));
159        }
160
161        private void GuiLogMessage(string p, NotificationLevel notificationLevel)
162        {
163            EventsHelper.GuiLogMessage(OnGuiLogNotificationOccured, this, new GuiLogEventArgs(p, this, notificationLevel));
164        }
165
166        #endregion
167       
168    }
169}
Note: See TracBrowser for help on using the repository browser.