--- /dev/null
+/* System.Web.Configuration\r
+ * Authors:\r
+ * Leen Toelen (toelen@hotmail.com)\r
+ * Copyright (C) 2001 Leen Toelen\r
+*/\r
+using System;\r
+using System.Web;\r
+using System.Web.UI;\r
+\r
+namespace System.Web.UI.HtmlControls{\r
+ \r
+ public class HtmlAnchor : HtmlContainerControl, IPostBackDataHandler{\r
+ \r
+ private static object EventServerClick = new Object();\r
+\r
+ public HtmlAnchor(): base("a"){}\r
+ \r
+ protected virtual void OnServerClick(EventArgs e){\r
+ EventHandler handler;\r
+ handler = (EventHandler) Events[EventServerClick];\r
+ if(handler != null){\r
+ handler.Invoke(this, e);\r
+ }\r
+ }\r
+\r
+ protected override void RenderAttributes(HtmlTextWriter writer){\r
+ if ((EventHandler) Events[EventServerClick] != null){\r
+ Attributes.Remove("href");\r
+ RenderAttributes(writer);\r
+ writer.WriteAttribute(Page.GetPostBackClientHyperlink(this,""),"href");\r
+ }\r
+ else{\r
+ PreProcessRelativeReferenceAttribute(writer,"href");\r
+ RenderAttributes(writer);\r
+ }\r
+ }\r
+\r
+ //FIXME: not sure about the accessor\r
+ public void RaisePostBackEvent(string eventArgument){\r
+ OnServerClick(EventArgs.Empty);\r
+ }\r
+\r
+ public event EventHandler ServerClick{\r
+ add{\r
+ Events.AddHandler(EventServerClick, value);\r
+ }\r
+ remove{\r
+ Events.RemoveHandler(EventServerClick, value);\r
+ }\r
+ }\r
+\r
+ public int HRef{\r
+ get{\r
+ string attr = Attributes["href"];\r
+ if (attr != null){\r
+ return attr;\r
+ }\r
+ return "";\r
+ }\r
+ set{\r
+ //MapIntegerAttributeToString(value) accessible constraint is "assembly"\r
+ Attributes["href"] = MapIntegerAttributeToString(value);\r
+ }\r
+ }\r
+\r
+ public string Name{\r
+ get{\r
+ string attr = Attributes["name"];\r
+ if (attr != null){\r
+ return attr;\r
+ }\r
+ return "";\r
+ }\r
+ set{\r
+ Attributes["name"] = MapStringAttributeToString(value);\r
+ }\r
+ }\r
+\r
+ public string Target{\r
+ get{\r
+ string attr = Attributes["target"];\r
+ if (attr != null){\r
+ return attr;\r
+ }\r
+ return "";\r
+ }\r
+ set{\r
+ Attributes["target"] = MapStringAttributeToString(value);\r
+ }\r
+ }\r
+\r
+ public string Title{\r
+ get{\r
+ string attr = Attributes["title"];\r
+ if (attr != null){\r
+ return attr;\r
+ }\r
+ return "";\r
+ }\r
+ set{\r
+ Attributes["title"] = MapStringAttributeToString(value);\r
+ }\r
+ }\r
+ \r
+ } // class HtmlAnchor\r
+} // namespace System.Web.UI.HtmlControls\r
+\r
--- /dev/null
+/* System.Web.Configuration\r
+ * Authors:\r
+ * Leen Toelen (toelen@hotmail.com)\r
+ * Copyright (C) 2001 Leen Toelen\r
+*/\r
+using System;\r
+using System.Web;\r
+using System.Web.UI;\r
+using System.ComponentModel;\r
+using System.Globalization;\r
+using System.Collections.Specialized;\r
+\r
+namespace System.Web.UI.HtmlControls{\r
+ \r
+ public class HtmlTextArea : HtmlContainerControl, IPostBackDataHandler{\r
+ \r
+ private static object EventServerChange = new Object();\r
+\r
+ public HtmlTextArea(): base("textarea"){}\r
+ \r
+ public int Cols{\r
+ get{\r
+ string attr = Attributes["cols"];\r
+ if (attr != null){\r
+ return Int32.Parse(attr, CultureInfo.InvariantCulture);\r
+ }\r
+ return -1;\r
+ }\r
+ set{\r
+ //MapIntegerAttributeToString(value) accessible constraint is "assembly"\r
+ Attributes["cols"] = MapIntegerAttributeToString(value);\r
+ }\r
+ }\r
+ \r
+ public int Rows{\r
+ get{\r
+ string attr = Attributes["rows"];\r
+ if (attr != null){\r
+ return Int32.Parse(attr, CultureInfo.InvariantCulture);;\r
+ }\r
+ return -1;\r
+ }\r
+ set{\r
+ //MapIntegerAttributeToString(value) accessible constraint is "assembly"\r
+ Attributes["rows"] = MapIntegerAttributeToString(value);\r
+ }\r
+ }\r
+ \r
+ public string Value{\r
+ get{\r
+ return InnerHtml;\r
+ }\r
+ set{\r
+ InnerHtml = value;\r
+ }\r
+ }\r
+\r
+ protected string RenderedNameAttribute{\r
+ get{\r
+ return Name;\r
+ }\r
+ }\r
+ \r
+ public virtual string Name{\r
+ get{\r
+ if (UniqueID != null){\r
+ return UniqueID;\r
+ }\r
+ return String.Empty;\r
+ }\r
+ set{}\r
+ }\r
+ \r
+ public event EventHandler ServerChange{\r
+ add{\r
+ Events.AddHandler(EventServerChange, value);\r
+ }\r
+ remove{\r
+ Events.RemoveHandler(EventServerChange, value);\r
+ }\r
+ }\r
+ \r
+ protected virtual void OnServerChange(EventArgs e){\r
+ EventHandler handler;\r
+ handler = (EventHandler) Events[EventServerChange];\r
+ if(handler != null){\r
+ handler.Invoke(this, e);\r
+ }\r
+ }\r
+ \r
+ //FIXME: not sure about the accessor\r
+ public bool LoadPostData(string postDataKey, NameValueCollection postCollection){\r
+ string currentValue = Value;\r
+ string postedValue = postCollection[postDataKey];\r
+ if (!currentValue.Equals(postedValue) && currentValue != null){\r
+ Value = HttpUtility.HtmlEncode(postedValue);\r
+ return true;\r
+ }\r
+ return false;\r
+\r
+ }\r
+ \r
+ protected override void RenderAttributes(HtmlTextWriter writer){\r
+ writer.WriteAttribute("name", RenderedNameAttribute);\r
+ base.Attributes.Remove("name");\r
+ base.RenderAttributes(writer);\r
+ }\r
+ \r
+ //FIXME: not sure about the accessor\r
+ public void RaisePostDataChangedEvent(){\r
+ OnServerChange(EventArgs.Empty);\r
+ }\r
+\r
+ protected override void OnPreRender(EventArgs e){\r
+ if(Events[EventServerChange]==null || Disabled==true){\r
+ ViewState.SetItemDirty("value",false);\r
+ }\r
+ }\r
+\r
+ protected override void AddParsedSubObject(object obj){\r
+ //TODO: implement "Is Instance Of"\r
+// if (obj of type LiteralControl || obj of type DataBoundLiteralControl){\r
+ AddParsedSubObject(obj);\r
+// return; \r
+// }\r
+ //FormatResourceString accessible constraint is "assembly"\r
+ throw new HttpException(HttpRuntime.FormatResourceString("Cannot_Have_Children_Of_Type","HtmlTextArea",obj.GetType().Name.ToString()));\r
+ }\r
+ \r
+ } // class HtmlTextArea\r
+} // namespace System.Web.UI.HtmlControls\r
+\r