2001-12-27 Gaurav Vaish <gvaish@iitk.ac.in>
authorGaurav Vaish <gvaish@mono-cvs.ximian.com>
Thu, 27 Dec 2001 12:42:45 +0000 (12:42 -0000)
committerGaurav Vaish <gvaish@mono-cvs.ximian.com>
Thu, 27 Dec 2001 12:42:45 +0000 (12:42 -0000)
* HyperLink.cs  -- Completed.

svn path=/trunk/mcs/; revision=1723

mcs/class/System.Web/System.Web.UI.WebControls/HyperLink.cs

index 420f3c5f6debc63defc7908011d6804d3326add6..43866b2ef7ffc22bdd07e91e3b7a9e9e1140e2fa 100755 (executable)
@@ -4,9 +4,9 @@
  * \r
  * Author:  Gaurav Vaish\r
  * Maintainer: gvaish@iitk.ac.in\r
- * Contact: <gvaish@iitk.ac.in>\r
+ * Contact: gvaish@iitk.ac.in, myscripts_2001@yahoo.com\r
  * Implementation: yes\r
- * Status:  10% (??)\r
+ * Status:  100%\r
  * \r
  * (C) Gaurav Vaish (2001)\r
  */\r
@@ -15,28 +15,22 @@ namespace System.Web.UI.WebControls
 {\r
        public class HyperLink: WebControl\r
        {\r
-               string imageUrl;\r
-               string navigateUrl;\r
-               string target;\r
-               string text;\r
-               \r
-               public HyperLink()\r
+               public HyperLink(): base()\r
                {\r
-                       imageUrl = string.Empty;\r
-                       navigateUrl = string.Empty;\r
-                       target = string.Empty;\r
-                       text = string.Empty;\r
                }\r
                \r
                public virtual string ImageUrl\r
                {\r
                        get\r
                        {\r
-                               return imageUrl;\r
+                               object o = ViewState["ImageUrl"];\r
+                               if(o!=null)\r
+                                       return (string)o;\r
+                               return String.Empty;\r
                        }\r
                        set\r
                        {\r
-                               imageUrl = value;\r
+                               ViewState["ImageUrl"] = value;\r
                        }\r
                }\r
                \r
@@ -44,11 +38,14 @@ namespace System.Web.UI.WebControls
                {\r
                        get\r
                        {\r
-                               return navigateUrl;\r
+                               object o = ViewState["NavigateUrl"];\r
+                               if(o!=null)\r
+                                       return (string)o;\r
+                               return String.Empty;\r
                        }\r
                        set\r
                        {\r
-                               navigateUrl = value;\r
+                               ViewState["NavigateUrl"] = value;\r
                        }\r
                }\r
                \r
@@ -56,11 +53,14 @@ namespace System.Web.UI.WebControls
                {\r
                        get\r
                        {\r
-                               return target;\r
+                               object o = ViewState["Target"];\r
+                               if(o!=null)\r
+                                       return (string)o;\r
+                               return String.Empty;\r
                        }\r
                        set\r
                        {\r
-                               target = value;\r
+                               ViewState["Target"] = value;\r
                        }\r
                }\r
                \r
@@ -68,12 +68,79 @@ namespace System.Web.UI.WebControls
                {\r
                        get\r
                        {\r
-                               return text;\r
+                               object o = ViewState["Text"];\r
+                               if(o!=null)\r
+                                       return (string)o;\r
+                               return String.Empty;\r
                        }\r
                        set\r
                        {\r
-                               text = value;\r
+                               ViewState["Text"] = value;\r
+                       }\r
+               }\r
+               \r
+               protected override void AddAttributesToRender(HtmlTextWriter writer) : AddAttributesToRender(writer)\r
+               {\r
+                       if(NavigateUrl.Length > 0)\r
+                       {\r
+                               writer.AddAttribute(HtmlTextWriterAttribute.Href, NavigateUrl);\r
+                       }\r
+                       if(Target.Length > 0)\r
+                       {\r
+                               writer.AddAttribute(HtmlTextWriterAttribute.Target, Target);\r
+                       }\r
+               }\r
+               \r
+               protected override void AddParsedSubObject(object obj)\r
+               {\r
+                       if(HasControls())\r
+                       {\r
+                               base.AddParsedSubObject(obj);\r
+                               return;\r
+                       }\r
+                       if(obj is LiteralConrol)\r
+                       {\r
+                               Text = ((LiteralControl)obj).Text;\r
+                               return;\r
+                       }\r
+                       if(Text.Length > 0)\r
+                       {\r
+                               base.AddParsedSubObject(Text);\r
+                               Text = String.Empty;\r
+                       }\r
+                       AddParsedSubObject(obj);\r
+               }\r
+               \r
+               protected override void LoadViewState(object savedState)\r
+               {\r
+                       if(savedState != null)\r
+                       {\r
+                               base.LoadViewState(savedState);\r
+                               object o = ViewState["Text"];\r
+                               if(o!=null)\r
+                                       Text = (string)o;\r
+                       }\r
+               }\r
+               \r
+               protected override void RenderContents(HtmlTextWriter writer)\r
+               {\r
+                       if(ImageUrl.Length > 0)\r
+                       {\r
+                               Image img = new Image();\r
+                               img.ImageUrl = ResolveUrl(ImageUrl);\r
+                               if(ToolTip.Length > 0)\r
+                                       img.ToolTip = ToolTip;\r
+                               if(Text.Length > 0)\r
+                                       img.AlternateText = Text;\r
+                               img.RenderControl(writer);\r
+                               return;\r
+                       }\r
+                       if(HasControls())\r
+                       {\r
+                               base.RenderControl(writer);\r
+                               return;\r
                        }\r
+                       writer.Write(Text);\r
                }\r
        }\r
 }\r