source: trunk/CrypPlugins/Variable/VariableLoad.cs @ 1785

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

added Variable plugin description

File size: 4.4 KB
Line 
1/*                             
2   Copyright 2009 Team CrypTool (Sven Rech,Dennis Nolte,Raoul Falk,Nils Kopal), Uni Duisburg-Essen
3
4   Licensed under the Apache License, Version 2.0 (the "License");
5   you may not use this file except in compliance with the License.
6   You may obtain a copy of the License at
7
8       http://www.apache.org/licenses/LICENSE-2.0
9
10   Unless required by applicable law or agreed to in writing, software
11   distributed under the License is distributed on an "AS IS" BASIS,
12   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   See the License for the specific language governing permissions and
14   limitations under the License.
15*/
16
17using System;
18using System.Collections.Generic;
19using System.Linq;
20using System.Text;
21
22using Cryptool.PluginBase;
23using Cryptool.PluginBase.IO;
24using System.Collections;
25using Cryptool.PluginBase.Miscellaneous;
26using System.ComponentModel;
27
28namespace Cryptool.Plugins.Variable
29{
30    [Author("Sven Rech", "sven.rech@cryptool.org", "Uni Duisburg-Essen", "http://www.uni-due.de")]
31    [PluginInfo(true, "VariableLoad", "Variable Load", "Variable/DetailedDescription/Description.xaml", "Variable/loadIcon.png")]
32    class VariableLoad : IInput
33    {
34        #region Private variables
35
36        private VariableSettings settings;
37        private object loadObject;
38
39        #endregion
40
41        public VariableLoad()
42        {
43            this.settings = new VariableSettings();
44           
45        }
46
47        public ISettings Settings
48        {
49            get { return settings; }
50            set { settings = (VariableSettings)value; }
51        }
52
53        #region Properties
54
55        [PropertyInfo(Direction.OutputData, "Variable Load Object", "Object to be loaded from the corresponding variable", "", DisplayLevel.Beginner)]
56        public object VariableLoadObject
57        {
58            get
59            {
60                return loadObject;
61            }
62            set
63            {
64                loadObject = value;
65                OnPropertyChanged("VariableLoadObject");
66            }
67        }
68        #endregion
69
70        private void onVariableStore(string variable, object input)
71        {
72            if (variable == settings.VariableName)
73            {
74                VariableLoadObject = input;
75                ProgressChanged(1.0, 1.0);
76            }
77        }
78
79        #region IPlugin Members
80
81        public event StatusChangedEventHandler OnPluginStatusChanged;
82
83        public System.Windows.Controls.UserControl Presentation
84        {
85            get { return null; }
86        }
87
88        public System.Windows.Controls.UserControl QuickWatchPresentation
89        {
90            get { return null; }
91        }
92
93        public void PreExecution()
94        {
95            Dispose();
96            VariableStore.OnVariableStore += new StoreVariable(onVariableStore);
97        }
98
99        public void Execute()
100        {
101            if (settings.VariableName == "")
102                GuiLogMessage("The variable name may not be empty.", NotificationLevel.Error);
103        }
104
105        public void PostExecution()
106        {
107            Dispose();
108        }
109
110        public void Pause()
111        {
112           
113        }
114
115        public void Stop()
116        {
117         
118        }
119
120        public void Initialize()
121        {
122           
123        }
124
125        public void Dispose()
126        {
127            VariableStore.OnVariableStore -= onVariableStore;
128        }
129
130        public event GuiLogNotificationEventHandler OnGuiLogNotificationOccured;
131
132        private void GuiLogMessage(string p, NotificationLevel notificationLevel)
133        {
134            EventsHelper.GuiLogMessage(OnGuiLogNotificationOccured, this, new GuiLogEventArgs(p, this, notificationLevel));
135        }
136
137        public event PluginProgressChangedEventHandler OnPluginProgressChanged;
138
139        private void ProgressChanged(double value, double max)
140        {
141            EventsHelper.ProgressChanged(OnPluginProgressChanged, this, new PluginProgressEventArgs(value, max));
142        }
143
144        #endregion
145
146        #region INotifyPropertyChanged Members
147
148        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
149
150        private void OnPropertyChanged(string p)
151        {
152            EventsHelper.PropertyChanged(PropertyChanged, this, new PropertyChangedEventArgs(p));
153        }
154
155        #endregion
156
157
158    }
159}
Note: See TracBrowser for help on using the repository browser.