2003-09-04 Sebastien Pouliot <spouliot@videotron.ca>
[mono.git] / mcs / class / System.Web.Mobile / System.Web.UI.MobileControls / CustomValidator.cs
1 /**
2  * Project   : Mono
3  * Namespace : System.Web.UI.MobileControls
4  * Class     : CustomValidator
5  * Author    : Gaurav Vaish
6  *
7  * Copyright : 2003 with Gaurav Vaish, and with
8  *             Ximian Inc
9  */
10
11 using System.Web.UI;
12 using System.Web.Mobile;
13 using System.Web.UI.WebControls;
14
15 namespace System.Web.UI.MobileControls
16 {
17         public class CustomValidator : BaseValidator
18         {
19                 private static readonly object ServerValidateEvent = new object();
20                 private System.Web.UI.WebControls.CustomValidator webCV;
21
22                 public CustomValidator()
23                 {
24                 }
25
26                 protected override bool EvaluateIsValid()
27                 {
28                         return base.EvaluateIsValidInternal();
29                 }
30
31                 protected override System.Web.UI.WebControls.BaseValidator CreateWebValidator()
32                 {
33                         webCV = new System.Web.UI.WebControls.CustomValidator();
34                         webCV.ServerValidate += new ServerValidateEventHandler(WebServerValidate);
35                         return webCV;
36                 }
37
38                 private void WebServerValidate(object sender, ServerValidateEventArgs e)
39                 {
40                         e.IsValid = OnServerValidate(e.Value);
41                 }
42
43                 protected bool OnServerValidate(string value)
44                 {
45                         ServerValidateEventHandler sveh =
46                                  (ServerValidateEventHandler)(Events[ServerValidateEvent]);
47                         if(sveh != null)
48                         {
49                                 ServerValidateEventArgs e =
50                                       new ServerValidateEventArgs(value, true);
51                                 sveh(this, e);
52                                 return e.IsValid;
53                         }
54                         return false;
55                 }
56
57                 protected override bool ControlPropertiesValid()
58                 {
59                         if(ControlToValidate.Length > 0)
60                                 return true;
61
62                         return base.ControlPropertiesValid();
63                 }
64
65                 public event ServerValidateEventHandler ServerValidate
66                 {
67                         add
68                         {
69                                 Events.AddHandler(ServerValidateEvent, value);
70                         }
71                         remove
72                         {
73                                 Events.RemoveHandler(ServerValidateEvent, value);
74                         }
75                 }
76         }
77 }