source: trunk/CrypPlugins/RegularExpressions/RegularExpressionReplace.cs @ 2417

Last change on this file since 2417 was 2334, checked in by Matthäus Wander, 11 years ago

removed 1006 occurences of DisplayLevel in 218 files (see #122)

File size: 5.2 KB
Line 
1/*                             
2   Copyright 2009 Team CrypTool (Armin Wiefels), 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*/
16using System;
17using System.Collections.Generic;
18using System.Linq;
19using System.Text;
20using Cryptool;
21using Cryptool.PluginBase.IO;
22using Cryptool.PluginBase;
23using Cryptool.PluginBase.Miscellaneous;
24using System.ComponentModel;
25using System.Text.RegularExpressions;
26
27namespace RegularExpressions
28{
29    [Author("Armin Wiefels", "wiefels@cryptool.org", "Uni Due", "http://www.uni-due.de")]
30    [PluginInfo(false, "Regular Expression Replace", "", "RegularExpressions/Description/RegexReplaceDescript.xaml", "RegularExpressions/icons/regreplaceicon.png")]
31
32    public class RegularExpressionReplace : IThroughput
33    {
34               
35        private RegularExpressionReplaceSettings settings;
36        private String input;
37        private String output;
38        private String pattern;
39        private String replacement;
40
41        public RegularExpressionReplace()
42        {
43            this.settings = new RegularExpressionReplaceSettings();
44        }
45        #region IPlugin Member
46
47        public event StatusChangedEventHandler OnPluginStatusChanged;
48
49        public event GuiLogNotificationEventHandler OnGuiLogNotificationOccured;
50
51        public event PluginProgressChangedEventHandler OnPluginProgressChanged;
52
53        public ISettings Settings
54        {
55            get { return this.settings; }
56            set { this.settings = (RegularExpressionReplaceSettings)value; }
57        }
58
59        public System.Windows.Controls.UserControl Presentation
60        {
61            get { return null; }
62        }
63
64        public System.Windows.Controls.UserControl QuickWatchPresentation
65        {
66            get { return null; }
67        }
68
69        public void PreExecution()
70        {
71        }
72
73        public void Execute()
74        {
75           // pattern = this.settings.PatternValue;
76           // replacement = this.settings.ReplaceValue;
77
78            try
79            {
80                 if (input != null && settings.PatternValue != null && settings.ReplaceValue != null)
81                //if (input != null && pattern != null && replacement != null)
82                {
83                    pattern = this.settings.PatternValue;
84                    replacement = this.settings.ReplaceValue;
85
86                    Output = input;
87                    Output = Regex.Replace(input, pattern, replacement);
88                    ProgressChanged(1, 1);
89                }
90
91                else 
92                {
93                    Output = input;
94                    ProgressChanged(1 , 1);
95                }
96            }
97            catch (Exception)
98            {
99              //  GuiLogMessage("Regular Expression is not valid.", NotificationLevel.Warning);
100            }
101        }
102
103        public void PostExecution()
104        {
105        }
106
107        public void Pause()
108        {
109        }
110
111        public void Stop()
112        {
113       
114        }
115
116        public void Initialize()
117        {
118           
119        }
120
121        public void Dispose()
122        {
123           
124        }
125
126        #endregion
127
128        #region properties
129        [PropertyInfo(Direction.InputData, "Input String", "", "", true, false, QuickWatchFormat.Text, null)]
130        public String Input
131        {
132            get { return this.input; }
133            set
134            {
135                if (value != null)
136                {
137                    this.input = (String)value;
138                    OnPropertyChange("Input");
139                }
140            }
141        }
142
143        [PropertyInfo(Direction.OutputData, "Output String", "", "")]
144        public String Output
145        {
146            get { return this.output; }
147            set
148            {
149                this.output = value;
150                OnPropertyChange("Output");
151            }
152        }
153
154        #endregion
155
156        #region INotifyPropertyChanged Member
157
158        public event PropertyChangedEventHandler PropertyChanged;
159
160
161        public void GuiLogMessage(string message, NotificationLevel logLevel)
162        {
163            EventsHelper.GuiLogMessage(OnGuiLogNotificationOccured, this, new GuiLogEventArgs(message, this, logLevel));
164        }
165
166        private void OnPropertyChange(String propertyname)
167        {
168            EventsHelper.PropertyChanged(PropertyChanged, this, new PropertyChangedEventArgs(propertyname));
169        }
170
171        private void ProgressChanged(double value, double max)
172        {
173            EventsHelper.ProgressChanged(OnPluginProgressChanged, this, new PluginProgressEventArgs(value, max));
174        }
175
176
177        #endregion
178
179       
180    }
181}
Note: See TracBrowser for help on using the repository browser.