2002-02-21 Gaurav Vaish <gvaish@iitk.ac.in>
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / HyperLink.cs
1 /**\r
2  * Namespace: System.Web.UI.WebControls\r
3  * Class:     HyperLink\r
4  * \r
5  * Author:  Gaurav Vaish\r
6  * Maintainer: gvaish@iitk.ac.in\r
7  * Contact: gvaish@iitk.ac.in, myscripts_2001@yahoo.com\r
8  * Implementation: yes\r
9  * Status:  100%\r
10  * \r
11  * (C) Gaurav Vaish (2001)\r
12  */\r
13 \r
14 namespace System.Web.UI.WebControls\r
15 {\r
16         public class HyperLink: WebControl\r
17         {\r
18                 public HyperLink(): base()\r
19                 {\r
20                 }\r
21                 \r
22                 public virtual string ImageUrl\r
23                 {\r
24                         get\r
25                         {\r
26                                 object o = ViewState["ImageUrl"];\r
27                                 if(o!=null)\r
28                                         return (string)o;\r
29                                 return String.Empty;\r
30                         }\r
31                         set\r
32                         {\r
33                                 ViewState["ImageUrl"] = value;\r
34                         }\r
35                 }\r
36                 \r
37                 public string NavigateUrl\r
38                 {\r
39                         get\r
40                         {\r
41                                 object o = ViewState["NavigateUrl"];\r
42                                 if(o!=null)\r
43                                         return (string)o;\r
44                                 return String.Empty;\r
45                         }\r
46                         set\r
47                         {\r
48                                 ViewState["NavigateUrl"] = value;\r
49                         }\r
50                 }\r
51                 \r
52                 public string Target\r
53                 {\r
54                         get\r
55                         {\r
56                                 object o = ViewState["Target"];\r
57                                 if(o!=null)\r
58                                         return (string)o;\r
59                                 return String.Empty;\r
60                         }\r
61                         set\r
62                         {\r
63                                 ViewState["Target"] = value;\r
64                         }\r
65                 }\r
66                 \r
67                 public virtual string Text\r
68                 {\r
69                         get\r
70                         {\r
71                                 object o = ViewState["Text"];\r
72                                 if(o!=null)\r
73                                         return (string)o;\r
74                                 return String.Empty;\r
75                         }\r
76                         set\r
77                         {\r
78                                 ViewState["Text"] = value;\r
79                         }\r
80                 }\r
81                 \r
82                 protected override void AddAttributesToRender(HtmlTextWriter writer) : AddAttributesToRender(writer)\r
83                 {\r
84                         if(NavigateUrl.Length > 0)\r
85                         {\r
86                                 writer.AddAttribute(HtmlTextWriterAttribute.Href, NavigateUrl);\r
87                         }\r
88                         if(Target.Length > 0)\r
89                         {\r
90                                 writer.AddAttribute(HtmlTextWriterAttribute.Target, Target);\r
91                         }\r
92                 }\r
93                 \r
94                 protected override void AddParsedSubObject(object obj)\r
95                 {\r
96                         if(HasControls())\r
97                         {\r
98                                 base.AddParsedSubObject(obj);\r
99                                 return;\r
100                         }\r
101                         if(obj is LiteralConrol)\r
102                         {\r
103                                 Text = ((LiteralControl)obj).Text;\r
104                                 return;\r
105                         }\r
106                         if(Text.Length > 0)\r
107                         {\r
108                                 base.AddParsedSubObject(Text);\r
109                                 Text = String.Empty;\r
110                         }\r
111                         AddParsedSubObject(obj);\r
112                 }\r
113                 \r
114                 protected override void LoadViewState(object savedState)\r
115                 {\r
116                         if(savedState != null)\r
117                         {\r
118                                 base.LoadViewState(savedState);\r
119                                 object o = ViewState["Text"];\r
120                                 if(o!=null)\r
121                                         Text = (string)o;\r
122                         }\r
123                 }\r
124                 \r
125                 protected override void RenderContents(HtmlTextWriter writer)\r
126                 {\r
127                         if(ImageUrl.Length > 0)\r
128                         {\r
129                                 Image img = new Image();\r
130                                 img.ImageUrl = ResolveUrl(ImageUrl);\r
131                                 if(ToolTip.Length > 0)\r
132                                         img.ToolTip = ToolTip;\r
133                                 if(Text.Length > 0)\r
134                                         img.AlternateText = Text;\r
135                                 img.RenderControl(writer);\r
136                                 return;\r
137                         }\r
138                         if(HasControls())\r
139                         {\r
140                                 base.RenderControl(writer);\r
141                                 return;\r
142                         }\r
143                         writer.Write(Text);\r
144                 }\r
145         }\r
146 }\r