ChangeLog: Updated.
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / TableRow.cs
1 //
2 // System.Web.UI.WebControls.TableRow.cs
3 //
4 // Authors:
5 //   Gaurav Vaish (gvaish@iitk.ac.in)
6 //   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
7 //
8 // (C) Gaurav Vaish (2002)
9 // (C) 2003 Andreas Nahr
10 //\r
11
12 //
13 // Permission is hereby granted, free of charge, to any person obtaining
14 // a copy of this software and associated documentation files (the
15 // "Software"), to deal in the Software without restriction, including
16 // without limitation the rights to use, copy, modify, merge, publish,
17 // distribute, sublicense, and/or sell copies of the Software, and to
18 // permit persons to whom the Software is furnished to do so, subject to
19 // the following conditions:
20 // 
21 // The above copyright notice and this permission notice shall be
22 // included in all copies or substantial portions of the Software.
23 // 
24 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
25 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
27 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
28 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
29 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
30 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 //
32 \r
33 using System;\r
34 using System.ComponentModel;\r
35 using System.Web;\r
36 using System.Web.UI;\r
37 \r
38 namespace System.Web.UI.WebControls\r
39 {\r
40         [DefaultProperty("Cells")]\r
41         [ParseChildren(true, "Cells")]
42         [ToolboxItem (false)]\r
43         public class TableRow: WebControl\r
44         {\r
45                 private TableCellCollection cells;\r
46 \r
47                 public TableRow() : base (HtmlTextWriterTag.Tr)\r
48                 {\r
49                         PreventAutoID ();\r
50                 }\r
51
52                 [MergableProperty (false), PersistenceMode (PersistenceMode.InnerDefaultProperty)]
53                 [WebSysDescription ("All cells that exist in a table row.")]\r
54                 public virtual TableCellCollection Cells\r
55                 {\r
56                         get {\r
57                                 if (cells == null)\r
58                                         cells = new TableCellCollection (this);\r
59                                 return cells;\r
60                         }\r
61                 }\r
62
63                 [DefaultValue (typeof (HorizontalAlign), "NotSet"), Bindable (true), WebCategory ("Layout")]
64                 [WebSysDescription ("The horizontal alignment for all table cells in that row.")]\r
65                 public virtual HorizontalAlign HorizontalAlign\r
66                 {\r
67                         get {\r
68                                 if (!ControlStyleCreated)\r
69                                         return HorizontalAlign.NotSet;\r
70                                 return ((TableItemStyle)ControlStyle).HorizontalAlign;                  \r
71                         }\r
72 \r
73                         set { ((TableItemStyle)ControlStyle).HorizontalAlign = value; }\r
74                 }\r
75
76                 [DefaultValue (typeof (VerticalAlign), "NotSet"), Bindable (true), WebCategory ("Layout")]
77                 [WebSysDescription ("The verical alignment for all table cells in that row.")]\r
78                 public virtual VerticalAlign VerticalAlign\r
79                 {\r
80                         get {\r
81                                 if (!ControlStyleCreated)\r
82                                         return VerticalAlign.NotSet;\r
83                                 return ((TableItemStyle)ControlStyle).VerticalAlign;                    \r
84                         }\r
85 \r
86                         set { ((TableItemStyle)ControlStyle).VerticalAlign = value; }\r
87                 }\r
88 \r
89                 protected override Style CreateControlStyle ()\r
90                 {\r
91                         return new TableItemStyle (ViewState);\r
92                 }\r
93 \r
94                 protected override ControlCollection CreateControlCollection ()\r
95                 {\r
96                         return new CellControlCollection (this);\r
97                 }\r
98 \r
99                 protected class CellControlCollection : ControlCollection\r
100                 {\r
101                         internal CellControlCollection (Control owner) : base (owner)\r
102                         {\r
103                         }\r
104 \r
105                         public override void Add (Control child)\r
106                         {\r
107                                 if (!(child is TableCell))\r
108                                         throw new ArgumentException (HttpRuntime.FormatResourceString (\r
109                                                                      "Cannot_Have_Children_Of_Type",\r
110                                                                      "TableRow",\r
111                                                                      GetType ().Name.ToString ()));\r
112                                 base.Add (child);\r
113                         }\r
114 \r
115                         public override void AddAt(int index, Control child)\r
116                         {\r
117                                 if (!(child is TableCell))\r
118                                         throw new ArgumentException (HttpRuntime.FormatResourceString (\r
119                                                                      "Cannot_Have_Children_Of_Type",\r
120                                                                      "TableRow",\r
121                                                                      GetType ().Name.ToString ()));\r
122                                 base.AddAt (index, child);\r
123                         }\r
124                 }\r
125         }\r
126 }\r
127 \r