3 // Permission is hereby granted, free of charge, to any person obtaining
4 // a copy of this software and associated documentation files (the
5 // "Software"), to deal in the Software without restriction, including
6 // without limitation the rights to use, copy, modify, merge, publish,
7 // distribute, sublicense, and/or sell copies of the Software, and to
8 // permit persons to whom the Software is furnished to do so, subject to
9 // the following conditions:
11 // The above copyright notice and this permission notice shall be
12 // included in all copies or substantial portions of the Software.
14 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 * Namespace: System.Web.UI.WebControls
24 * Class: TableCellCollection
26 * Author: Gaurav Vaish
27 * Maintainer: gvaish@iitk.ac.in
28 * Contact: <my_scripts2001@yahoo.com>, <gvaish@iitk.ac.in>
32 * (C) Gaurav Vaish (2002)
36 using System
.Collections
;
39 using System
.ComponentModel
;
41 namespace System
.Web
.UI
.WebControls
43 [Editor ("System.Web.UI.Design.WebControls.TableCellsCollectionEditor, " + Consts
.AssemblySystem_Design
, typeof (System
.Drawing
.Design
.UITypeEditor
))]
44 public sealed class TableCellCollection
: IList
, ICollection
, IEnumerable
46 private TableRow owner
;
48 internal TableCellCollection(TableRow owner
)
52 throw new ArgumentNullException();
61 return owner
.Controls
.Count
;
65 public bool IsReadOnly
73 public bool IsSynchronized
81 public TableCell
this[int index
]
85 return (TableCell
)owner
.Controls
[index
];
89 public object SyncRoot
97 public int Add(TableCell cell
)
100 return owner
.Controls
.Count
- 1;
103 public void AddAt(int index
, TableCell cell
)
105 owner
.Controls
.AddAt(index
, cell
);
108 public void AddRange(TableCell
[] cells
)
110 foreach(TableCell cell
in cells
)
118 if(owner
.HasControls())
120 owner
.Controls
.Clear();
124 public void CopyTo(Array array
, int index
)
126 foreach(object cell
in this)
128 array
.SetValue(cell
, index
++);
132 public int GetCellIndex(TableCell cell
)
134 if(!owner
.HasControls())
138 return owner
.Controls
.IndexOf(cell
);
141 public IEnumerator
GetEnumerator()
143 return owner
.Controls
.GetEnumerator();
146 public void Remove(TableCell cell
)
148 owner
.Controls
.Remove(cell
);
151 public void RemoveAt(int index
)
153 owner
.Controls
.RemoveAt(index
);
156 int IList
.Add(object o
)
158 return Add((TableCell
)o
);
161 bool IList
.Contains(object o
)
163 return owner
.Controls
.Contains((TableCell
)o
);
166 int IList
.IndexOf(object o
)
168 return owner
.Controls
.IndexOf((TableCell
)o
);
171 void IList
.Insert(int index
, object o
)
173 owner
.Controls
.AddAt(index
, (TableCell
)o
);
176 void IList
.Remove(object o
)
178 owner
.Controls
.Remove((TableCell
)o
);
181 bool IList
.IsFixedSize
189 object IList
.this[int index
]
198 AddAt(index
, (TableCell
)value);