2007-08-05 Miguel de Icaza <miguel@novell.com>
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / RequiredFieldValidator.cs
index 68ca908688d7ff27f9fba042e8e58bcedd362cdf..3a12329cc5e3168448462ed9dbae5ead2d5bc7f2 100644 (file)
@@ -1,64 +1,76 @@
-/**\r
- * Namespace: System.Web.UI.WebControls\r
- * Class:     RequiredFieldValidator\r
- *\r
- * Author:  Gaurav Vaish\r
- * Maintainer: gvaish@iitk.ac.in\r
- * Contact: <my_scripts2001@yahoo.com>, <gvaish@iitk.ac.in>\r
- * Implementation: yes\r
- * Status:  100%\r
- *\r
- * (C) Gaurav Vaish (2002)\r
- */
+//
+// System.Web.UI.WebControls.RequiredFieldValidator
+//
+// Authors:
+//     Ben Maurer (bmaurer@novell.com)
+//
+// (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
 
-using System.ComponentModel;\r
-\r
-namespace System.Web.UI.WebControls\r
-{\r
-       [ToolboxData("<{0}:RequiredFieldValidator runat=\"server\" "\r
-                  + "ErrorMessage=\"RequiredFieldValidator\">"\r
-                  + "</{0}:RequiredFieldValidator>")]\r
-       public class RequiredFieldValidator : BaseValidator\r
-       {\r
-               public RequiredFieldValidator(): base()\r
-               {\r
-               }\r
+using System.ComponentModel;
+using System.Security.Permissions;
 
-               [DefaultValue (""), Bindable (true), WebCategory ("Behavior")]
-               [WebSysDescription ("The initial value for the required field.")]\r
-               public string InitialValue\r
-               {\r
-                       get\r
-                       {\r
-                               object o = ViewState["InitialValue"];\r
-                               if(o != null)\r
-                                       return (String)o;\r
-                               return String.Empty;\r
-                       }\r
-                       set\r
-                       {\r
-                               ViewState["InitialValue"] = value;\r
-                       }\r
-               }\r
-\r
-               protected override void AddAttributesToRender(HtmlTextWriter writer)\r
-               {\r
-                       base.AddAttributesToRender(writer);\r
-                       if(RenderUplevel)\r
-                       {\r
-                               writer.AddAttribute("evaluationfunction", "RequiredFieldValidatorEvaluateIsValid");\r
-                               writer.AddAttribute("initialvalue", InitialValue);\r
-                       }\r
-               }\r
-\r
-               protected override bool EvaluateIsValid()\r
-               {\r
-                       string val = GetControlValidationValue(ControlToValidate);\r
-                       if(val != null)\r
-                       {\r
-                               return (val.Trim() != InitialValue.Trim());\r
-                       }\r
-                       return true;\r
-               }\r
-       }\r
-}\r
+namespace System.Web.UI.WebControls {
+       // CAS
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       // attributes
+#if NET_2_0
+       [ToolboxData ("<{0}:RequiredFieldValidator runat=\"server\" ErrorMessage=\"RequiredFieldValidator\"></{0}:RequiredFieldValidator>")]
+#else
+       [ToolboxData ("<{0}:RequiredFieldValidator runat=server ErrorMessage=\"RequiredFieldValidator\"></{0}:RequiredFieldValidator>")]
+#endif
+       public class RequiredFieldValidator : BaseValidator {
+               protected override void AddAttributesToRender (HtmlTextWriter w)
+               {
+                       if (RenderUplevel) {
+                               w.AddAttribute ("evaluationfunction", "RequiredFieldValidatorEvaluateIsValid", false);
+                               w.AddAttribute ("initialvalue", InitialValue);
+                       }
+
+                       base.AddAttributesToRender (w);
+               }
+               
+               protected override bool EvaluateIsValid ()
+               {
+                       return GetControlValidationValue (ControlToValidate) != InitialValue;
+               }
+               
+
+#if NET_2_0
+               [Themeable(false)]
+#else
+               [Bindable(true)]
+#endif
+               [DefaultValue("")]
+               [WebSysDescription ("")]
+               [WebCategory ("Behavior")]
+               public string InitialValue {
+                       get {
+                               return ViewState.GetString ("InitialValue", "");
+                       }
+                       set {
+                               ViewState ["InitialValue"] = value;
+                       }
+               }
+       }
+}