Add licensing info
[mono.git] / mcs / class / System.Design / System.Web.UI.Design.WebControls / RegexTypeEditor.cs
1
2 //
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:
10 // 
11 // The above copyright notice and this permission notice shall be
12 // included in all copies or substantial portions of the Software.
13 // 
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.
21 //
22 /**
23  * Namespace:   System.Web.UI.Design.WebControls
24  * Class:       RegexTypeEditor
25  *
26  * Author:      Gaurav Vaish
27  * Maintainer:  mastergaurav AT users DOT sf DOT net
28  *
29  * (C) Gaurav Vaish (2002)
30  */
31
32 using System;
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;
38
39 namespace System.Web.UI.Design.WebControls
40 {
41         public class RegexTypeEditor : UITypeEditor
42         {
43                 public RegexTypeEditor() : base()
44                 {
45                 }
46
47                 public override object EditValue(ITypeDescriptorContext context,
48                                        IServiceProvider provider, object value)
49                 {
50                         if(provider != null)
51                         {
52                                 IWindowsFormsEditorService winEdit = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
53                                 ISite site = null;
54                                 if(winEdit != null)
55                                 {
56                                         if(context.Instance is IComponent)
57                                         {
58                                                 site = ((IComponent)context.Instance).Site;
59                                         } else if(context.Instance is object[] &&
60                                                   ((object[])context.Instance)[0] is IComponent)
61                                         {
62                                                 site = ((IComponent)(((object[])context.Instance)[0])).Site;
63                                         }
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;
69                                 }
70                         }
71                         return value;
72                 }
73                 
74                 public override UITypeEditorEditStyle GetEditStyle(
75                                                       ITypeDescriptorContext context)
76                 {
77                         return UITypeEditorEditStyle.Modal;
78                 }
79         }
80 }