2002-24-02 Gaurav Vaish <gvaish@iitk.ac.in>
[mono.git] / mcs / class / System.Web / System.Web.UI.HtmlControls / HtmlTable.cs
1 /*      System.Web.UI.HtmlControls\r
2 *       Authors\r
3 *               Leen Toelen (toelen@hotmail.com)\r
4 */\r
5 \r
6 using System;\r
7 using System.Web;\r
8 using System.Web.UI;\r
9 using System.Globalization;\r
10 \r
11 namespace System.Web.UI.HtmlControls{\r
12         \r
13         public class HtmlTable : HtmlContainerControl {\r
14                 private HtmlTableRowCollection _rows;\r
15                 \r
16                 public HtmlTable():base("table"){}\r
17                 \r
18                 protected override ControlCollection CreateControlCollection(){\r
19                         return new HtmlTableRowControlCollection(this);\r
20                 }\r
21                 \r
22                 protected override void RenderChildren(HtmlTextWriter writer){\r
23                         writer.WriteLine();\r
24                         writer.Indent = writer.Indent + 1;\r
25                         base.RenderChildren(writer);\r
26                         writer.Indent = writer.Indent - 1;\r
27                 }\r
28                 \r
29                 protected new void RenderEndTag(HtmlTextWriter writer){\r
30                         base.RenderEndTag(writer);\r
31                         writer.WriteLine();\r
32                 }\r
33                 \r
34                 public string Align {\r
35                         get{\r
36                                 string attr = Attributes["align"];\r
37                                 if (attr != null) return attr;\r
38                                 return String.Empty;\r
39                         }\r
40                         set{\r
41                                 Attributes["align"] = AttributeToString(value);\r
42                         }\r
43                 }\r
44                 \r
45                 public string BgColor {\r
46                         get{\r
47                                 string attr = Attributes["bgcolor"];\r
48                                 if (attr != null) return attr;\r
49                                 return String.Empty;\r
50                         }\r
51                         set{\r
52                                 Attributes["bgcolor"] = AttributeToString(value);\r
53                         }\r
54                 }\r
55                 \r
56                 public int Border {\r
57                         get{\r
58                                 string attr = Attributes["border"];\r
59                                 if (attr != null) return Int32.Parse(attr, CultureInfo.InvariantCulture);\r
60                                 return -1;\r
61                         }\r
62                         set{\r
63                                 Attributes["border"] = AttributeToString(value);\r
64                         }\r
65                 }\r
66                 \r
67                 public string BorderColor {\r
68                         get{\r
69                                 string attr = Attributes["bordercolor"];\r
70                                 if (attr != null) return attr;\r
71                                 return String.Empty;\r
72                         }\r
73                         set{\r
74                                 Attributes["bordercolor"] = AttributeToString(value);\r
75                         }\r
76                 }\r
77                 \r
78                 public int CellPadding {\r
79                         get{\r
80                                 string attr = Attributes["cellpadding"];\r
81                                 if (attr != null) return Int32.Parse(attr, CultureInfo.InvariantCulture);\r
82                                 return -1;\r
83                         }\r
84                         set{\r
85                                 Attributes["cellpadding"] = AttributeToString(value);\r
86                         }\r
87                 }\r
88                 \r
89                 public int CellSpacing {\r
90                         get{\r
91                                 string attr = Attributes["cellspacing"];\r
92                                 if (attr != null) return Int32.Parse(attr, CultureInfo.InvariantCulture);\r
93                                 return -1;\r
94                         }\r
95                         set{\r
96                                 Attributes["cellspacing"] = AttributeToString(value);\r
97                         }\r
98                 }\r
99                 \r
100                 public string Height {\r
101                         get{\r
102                                 string attr = Attributes["height"];\r
103                                 if (attr != null) return attr;\r
104                                 return String.Empty;\r
105                         }\r
106                         set{\r
107                                 Attributes["height"] = AttributeToString(value);\r
108                         }\r
109                 }\r
110                 \r
111                 public override string InnerHtml {\r
112                         get{\r
113                                 throw new NotSupportedException("InnerHtml property not supported by HtmlTable");\r
114                         }\r
115                         set{\r
116                                 throw new NotSupportedException("InnerHtml property not supported by HtmlTable");\r
117                         }\r
118                 }\r
119                 \r
120                 public override string InnerText {\r
121                         get{\r
122                                 throw new NotSupportedException("InnerText property not supported by HtmlTable");\r
123                         }\r
124                         set{\r
125                                 throw new NotSupportedException("InnerText property not supported by HtmlTable");\r
126                         }\r
127                 }\r
128                 \r
129                 public virtual HtmlTableRowCollection Rows {\r
130                         get{\r
131                                 if (_rows == null) _rows = new HtmlTableRowCollection(this);\r
132                                 return _rows;\r
133                         }\r
134                 }\r
135                 \r
136                 public string Width {\r
137                         get{\r
138                                 string attr = Attributes["width"];\r
139                                 if (attr != null) return attr;\r
140                                 return String.Empty;\r
141                         }\r
142                         set{\r
143                                 Attributes["width"] = AttributeToString(value);\r
144                         }\r
145                 }\r
146                 \r
147                 protected class HtmlTableRowControlCollection : ControlCollection {\r
148                         \r
149                         internal HtmlTableRowControlCollection(Control owner): base(owner){}\r
150                         \r
151                         public override void Add(Control child){\r
152                                 if ((child as HtmlTableCell) != null){\r
153                                         base.Add(child);\r
154                                 }\r
155                                 else{\r
156                                         throw new ArgumentException("HtmlTableRow cannot have children of type" + child.GetType().Name);\r
157                                 }\r
158                         }\r
159                         \r
160                         public override void AddAt(int index, Control child){\r
161                                 if ((child as HtmlTableCell) != null){\r
162                                         base.AddAt(index,child);\r
163                                 }\r
164                                 else{\r
165                                         throw new ArgumentException("HtmlTableRow cannot have children of type" + child.GetType().Name);\r
166                                 }\r
167                         }\r
168                 } // end of HtmlTableRowControlCollection\r
169         }\r
170         // end of System.Web.UI.HtmlControl\r
171 }\r