3 // Permission is hereby granted, free of charge, to any person obtaining
4 // a copy of this software and associated documentation files (the
5 // "Software"), to deal in the Software without restriction, including
6 // without limitation the rights to use, copy, modify, merge, publish,
7 // distribute, sublicense, and/or sell copies of the Software, and to
8 // permit persons to whom the Software is furnished to do so, subject to
9 // the following conditions:
11 // The above copyright notice and this permission notice shall be
12 // included in all copies or substantial portions of the Software.
14 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 * Namespace: System.Web.UI.Design.WebControls
24 * Class: RegexTypeEditor
26 * Author: Gaurav Vaish
27 * Maintainer: mastergaurav AT users DOT sf DOT net
29 * (C) Gaurav Vaish (2002)
33 using System
.ComponentModel
;
34 using System
.Drawing
.Design
;
35 using System
.Web
.UI
.Design
;
36 using System
.Windows
.Forms
.Design
;
37 using System
.Windows
.Forms
;
39 namespace System
.Web
.UI
.Design
.WebControls
41 public class RegexTypeEditor
: UITypeEditor
43 public RegexTypeEditor() : base()
47 public override object EditValue(ITypeDescriptorContext context
,
48 IServiceProvider provider
, object value)
52 IWindowsFormsEditorService winEdit
= (IWindowsFormsEditorService
)provider
.GetService(typeof(IWindowsFormsEditorService
));
56 if(context
.Instance
is IComponent
)
58 site
= ((IComponent
)context
.Instance
).Site
;
59 } else if(context
.Instance
is object[] &&
60 ((object[])context
.Instance
)[0] is IComponent
)
62 site
= ((IComponent
)(((object[])context
.Instance
)[0])).Site
;
64 RegexEditorDialog dlg
= new RegexEditorDialog(site
);
65 dlg
.RegularExpression
= value.ToString();
66 DialogResult res
= dlg
.ShowDialog();
67 if(res
== DialogResult
.OK
)
68 value = dlg
.RegularExpression
;
74 public override UITypeEditorEditStyle
GetEditStyle(
75 ITypeDescriptorContext context
)
77 return UITypeEditorEditStyle
.Modal
;