source: trunk/CrypPlugins/Collector/Collector.cs @ 1597

Last change on this file since 1597 was 740, checked in by Matthäus Wander, 12 years ago

CrypWin:

  • changed string Beta 01 -> 02
  • TextBoxHidden now loads its value when loading a project file
  • see #98 for an open issue

BigInteger/BigNumber:

  • added sanity checks for == operator and Equals()
  • setting input properties to null in PreExecution (addresses #90)

Tokenizer:

  • added \t as word delimiter (fixes problem with Enigma-Challenge_II)

Enigma:

  • added null reference sanity check

WordPatterns:

  • improved PostBuild events

ExamplePluginCT2:

  • added example plugin which serves as plugin template
  • the template is located in Documentation/Template/
File size: 5.7 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;
21using Cryptool.PluginBase.IO;
22using Cryptool.PluginBase;
23using Cryptool.PluginBase.Miscellaneous;
24using System.ComponentModel;
25using System.Runtime.Remoting.Contexts;
26
27namespace Cryptool.Plugins.Collector
28{
29    [Author("Sven Rech", "sven.rech@cryptool.com", "Uni Duisburg-Essen", "http://www.uni-due.de")]
30    [PluginInfo(false, "Collector", "Collector", "Collector/DetailedDescription/Description.xaml", "Collector/icon.png")]
31    [Synchronization]
32    class Collector : IThroughput
33    {
34        #region Private Variables
35        private CollectorSettings settings = new CollectorSettings();
36        private List<CryptoolStream> listCryptoolStreamOut = new List<CryptoolStream>();
37        private bool freshOutput = false;
38        #endregion
39
40        #region Properties
41
42        private Object input1 = null;
43        [PropertyInfo(Direction.InputData, "First Input", "First input to be collected", "", false, true, DisplayLevel.Beginner, QuickWatchFormat.Text, null)]
44        public Object Input1
45        {
46            get
47            {
48                return input1;
49            }
50            set
51            {
52                input1 = value;
53                freshOutput = true;
54                OnPropertyChanged("Input1");
55                Output = value;
56            }
57        }
58
59        private Object input2 = null;
60        [PropertyInfo(Direction.InputData, "Second Input", "Second input to be collected", "", false, true, DisplayLevel.Beginner, QuickWatchFormat.Text, null)]
61        public Object Input2
62        {
63            get
64            {
65                return input2;
66            }
67            set
68            {
69                input2 = value;
70                freshOutput = true;
71                OnPropertyChanged("Input2");
72                Output = value;
73            }
74        }
75
76        private Object output = null;
77        [PropertyInfo(Direction.OutputData, "Output", "Output", "", DisplayLevel.Beginner)]
78        public Object Output
79        {
80            get
81            {
82                return output;
83            }
84            set
85            {
86                if (value is CryptoolStream)
87                {
88                    CryptoolStream cs = new CryptoolStream();
89                    cs.OpenRead((value as CryptoolStream).FileName);
90                    listCryptoolStreamOut.Add(cs);
91                    output = cs;
92                }
93                else
94                    output = value;
95            }
96        }
97
98        #endregion
99
100        #region IPlugin Members
101
102        public event Cryptool.PluginBase.StatusChangedEventHandler OnPluginStatusChanged;
103
104        public event Cryptool.PluginBase.GuiLogNotificationEventHandler OnGuiLogNotificationOccured;
105
106        private void GuiLogMessage(string p, NotificationLevel notificationLevel)
107        {
108            EventsHelper.GuiLogMessage(OnGuiLogNotificationOccured, this, new GuiLogEventArgs(p, this, notificationLevel));
109        }
110
111        public event Cryptool.PluginBase.PluginProgressChangedEventHandler OnPluginProgressChanged;
112
113        private void ProgressChanged(double value, double max)
114        {
115            EventsHelper.ProgressChanged(OnPluginProgressChanged, this, new PluginProgressEventArgs(value, max));
116        }
117
118        public Cryptool.PluginBase.ISettings Settings
119        {
120            get { return settings; }
121            set { settings = (CollectorSettings)value; }
122        }
123
124        public System.Windows.Controls.UserControl Presentation
125        {
126            get { return null; }
127        }
128
129        public System.Windows.Controls.UserControl QuickWatchPresentation
130        {
131            get { return null; }
132        }
133
134        public void PreExecution()
135        {
136            Dispose();
137
138            freshOutput = false;
139            input1 = null;
140            input2 = null;
141            output = null;
142        }
143
144        public void Execute()
145        {
146            if (freshOutput)
147            {
148                ProgressChanged(1, 1);
149
150                OnPropertyChanged("Output");
151                freshOutput = false;
152            }
153        }
154
155        public void PostExecution()
156        {
157            Dispose();
158        }
159
160        public void Pause()
161        {
162           
163        }
164
165        public void Stop()
166        {
167           
168        }
169
170        public void Initialize()
171        {
172           
173        }
174
175        public void Dispose()
176        {
177            foreach (CryptoolStream cs in listCryptoolStreamOut)
178                cs.Close();
179        }
180
181        #endregion
182
183        #region INotifyPropertyChanged Members
184
185        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
186
187        private void OnPropertyChanged(string p)
188        {
189            EventsHelper.PropertyChanged(PropertyChanged, this, new PropertyChangedEventArgs(p));
190        }
191
192        #endregion
193    }
194}
Note: See TracBrowser for help on using the repository browser.