error messages review
[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.ComponentModel;\r
8 using System.Web;\r
9 using System.Web.UI;\r
10 using System.Globalization;\r
11 \r
12 namespace System.Web.UI.HtmlControls{\r
13         \r
14         [ParseChildren(true, "Rows")]\r
15         public class HtmlTable : HtmlContainerControl {\r
16                 private HtmlTableRowCollection _rows;\r
17                 \r
18                 public HtmlTable():base("table"){}\r
19                 \r
20                 protected override ControlCollection CreateControlCollection(){\r
21                         return new HtmlTableRowControlCollection(this);\r
22                 }\r
23                 \r
24                 protected override void RenderChildren(HtmlTextWriter writer){\r
25                         writer.WriteLine();\r
26                         writer.Indent = writer.Indent + 1;\r
27                         base.RenderChildren(writer);\r
28                         writer.Indent = writer.Indent - 1;\r
29                 }\r
30                 \r
31                 protected override void RenderEndTag(HtmlTextWriter writer){\r
32                         base.RenderEndTag(writer);\r
33                         writer.WriteLine();\r
34                 }\r
35                 \r
36                 [DefaultValue("")]\r
37                 [WebCategory("Layout")]\r
38                 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]\r
39                 public string Align {\r
40                         get{\r
41                                 string attr = Attributes["align"];\r
42                                 if (attr != null) return attr;\r
43                                 return String.Empty;\r
44                         }\r
45                         set{\r
46                                 Attributes["align"] = AttributeToString(value);\r
47                         }\r
48                 }\r
49                 \r
50                 [DefaultValue("")]\r
51                 [WebCategory("Appearance")]\r
52                 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]\r
53                 public string BgColor {\r
54                         get{\r
55                                 string attr = Attributes["bgcolor"];\r
56                                 if (attr != null) return attr;\r
57                                 return String.Empty;\r
58                         }\r
59                         set{\r
60                                 Attributes["bgcolor"] = AttributeToString(value);\r
61                         }\r
62                 }\r
63                 \r
64                 [DefaultValue(-1)]\r
65                 [WebCategory("Appearance")]\r
66                 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]\r
67                 public int Border {\r
68                         get{\r
69                                 string attr = Attributes["border"];\r
70                                 if (attr != null) return Int32.Parse(attr, CultureInfo.InvariantCulture);\r
71                                 return -1;\r
72                         }\r
73                         set{\r
74                                 Attributes["border"] = AttributeToString(value);\r
75                         }\r
76                 }\r
77                 \r
78                 [DefaultValue("")]\r
79                 [WebCategory("Appearance")]\r
80                 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]\r
81                 public string BorderColor {\r
82                         get{\r
83                                 string attr = Attributes["bordercolor"];\r
84                                 if (attr != null) return attr;\r
85                                 return String.Empty;\r
86                         }\r
87                         set{\r
88                                 Attributes["bordercolor"] = AttributeToString(value);\r
89                         }\r
90                 }\r
91                 \r
92                 [DefaultValue("")]\r
93                 [WebCategory("Appearance")]\r
94                 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]\r
95                 public int CellPadding {\r
96                         get{\r
97                                 string attr = Attributes["cellpadding"];\r
98                                 if (attr != null) return Int32.Parse(attr, CultureInfo.InvariantCulture);\r
99                                 return -1;\r
100                         }\r
101                         set{\r
102                                 Attributes["cellpadding"] = AttributeToString(value);\r
103                         }\r
104                 }\r
105                 \r
106                 [DefaultValue("")]\r
107                 [WebCategory("Appearance")]\r
108                 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]\r
109                 public int CellSpacing {\r
110                         get{\r
111                                 string attr = Attributes["cellspacing"];\r
112                                 if (attr != null) return Int32.Parse(attr, CultureInfo.InvariantCulture);\r
113                                 return -1;\r
114                         }\r
115                         set{\r
116                                 Attributes["cellspacing"] = AttributeToString(value);\r
117                         }\r
118                 }\r
119                 \r
120                 [DefaultValue("")]\r
121                 [WebCategory("Layout")]\r
122                 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]\r
123                 public string Height {\r
124                         get{\r
125                                 string attr = Attributes["height"];\r
126                                 if (attr != null) return attr;\r
127                                 return String.Empty;\r
128                         }\r
129                         set{\r
130                                 Attributes["height"] = AttributeToString(value);\r
131                         }\r
132                 }\r
133                 \r
134                 public override string InnerHtml {\r
135                         get{\r
136                                 throw new NotSupportedException("InnerHtml property not supported by HtmlTable");\r
137                         }\r
138                         set{\r
139                                 throw new NotSupportedException("InnerHtml property not supported by HtmlTable");\r
140                         }\r
141                 }\r
142                 \r
143                 public override string InnerText {\r
144                         get{\r
145                                 throw new NotSupportedException("InnerText property not supported by HtmlTable");\r
146                         }\r
147                         set{\r
148                                 throw new NotSupportedException("InnerText property not supported by HtmlTable");\r
149                         }\r
150                 }
151 \r
152                 [IgnoreUnknownContent ()]\r
153                 [Browsable(false)]\r
154                 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]\r
155                 public virtual HtmlTableRowCollection Rows {\r
156                         get{\r
157                                 if (_rows == null) _rows = new HtmlTableRowCollection(this);\r
158                                 return _rows;\r
159                         }\r
160                 }\r
161                 \r
162                 [DefaultValue("")]\r
163                 [WebCategory("Layout")]\r
164                 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]\r
165                 public string Width {\r
166                         get{\r
167                                 string attr = Attributes["width"];\r
168                                 if (attr != null) return attr;\r
169                                 return String.Empty;\r
170                         }\r
171                         set{\r
172                                 Attributes["width"] = AttributeToString(value);\r
173                         }\r
174                 }\r
175                 \r
176                 protected class HtmlTableRowControlCollection : ControlCollection {\r
177                         \r
178                         internal HtmlTableRowControlCollection(Control owner): base(owner){}\r
179                         \r
180                         public override void Add(Control child){\r
181                                 if ((child as HtmlTableRow) != null){\r
182                                         base.Add(child);\r
183                                 }\r
184                                 else{\r
185                                         throw new ArgumentException("HtmlTableRow cannot have children of type " + child.GetType().Name);\r
186                                 }\r
187                         }\r
188                         \r
189                         public override void AddAt(int index, Control child){\r
190                                 if ((child as HtmlTableRow) != null){\r
191                                         base.AddAt(index,child);\r
192                                 }\r
193                                 else{\r
194                                         throw new ArgumentException("HtmlTableRow cannot have children of type " + child.GetType().Name);\r
195                                 }\r
196                         }\r
197                 } // end of HtmlTableRowControlCollection\r
198         }\r
199         // end of System.Web.UI.HtmlControl\r
200 }\r