2 * Namespace: System.Web.UI.WebControls
\r
3 * Class: TableCellCollection
\r
5 * Author: Gaurav Vaish
\r
6 * Maintainer: gvaish@iitk.ac.in
\r
7 * Contact: <my_scripts2001@yahoo.com>, <gvaish@iitk.ac.in>
\r
8 * Implementation: yes
\r
11 * (C) Gaurav Vaish (2002)
\r
15 using System.Collections;
\r
17 using System.Web.UI;
\r
18 using System.ComponentModel;
\r
20 namespace System.Web.UI.WebControls
\r
22 [Editor ("System.Web.UI.Design.WebControls.TableCellsCollectionEditor, " + Consts.AssemblySystem_Design, typeof (System.Drawing.Design.UITypeEditor))]
\r
23 public sealed class TableCellCollection: IList, ICollection, IEnumerable
\r
25 private TableRow owner;
\r
27 internal TableCellCollection(TableRow owner)
\r
31 throw new ArgumentNullException();
\r
40 return owner.Controls.Count;
\r
44 public bool IsReadOnly
\r
52 public bool IsSynchronized
\r
60 public TableCell this[int index]
\r
64 return (TableCell)owner.Controls[index];
\r
68 public object SyncRoot
\r
76 public int Add(TableCell cell)
\r
79 return owner.Controls.Count - 1;
\r
82 public void AddAt(int index, TableCell cell)
\r
84 owner.Controls.AddAt(index, cell);
\r
87 public void AddRange(TableCell[] cells)
\r
89 foreach(TableCell cell in cells)
\r
97 if(owner.HasControls())
\r
99 owner.Controls.Clear();
\r
103 public void CopyTo(Array array, int index)
\r
105 foreach(object cell in this)
\r
107 array.SetValue(cell, index++);
\r
111 public int GetCellIndex(TableCell cell)
\r
113 if(!owner.HasControls())
\r
117 return owner.Controls.IndexOf(cell);
\r
120 public IEnumerator GetEnumerator()
\r
122 return owner.Controls.GetEnumerator();
\r
125 public void Remove(TableCell cell)
\r
127 owner.Controls.Remove(cell);
\r
130 public void RemoveAt(int index)
\r
132 owner.Controls.RemoveAt(index);
\r
135 int IList.Add(object o)
\r
137 return Add((TableCell)o);
\r
140 bool IList.Contains(object o)
\r
142 return owner.Controls.Contains((TableCell)o);
\r
145 int IList.IndexOf(object o)
\r
147 return owner.Controls.IndexOf((TableCell)o);
\r
150 void IList.Insert(int index, object o)
\r
152 owner.Controls.AddAt(index, (TableCell)o);
\r
155 void IList.Remove(object o)
\r
157 owner.Controls.Remove((TableCell)o);
\r
160 bool IList.IsFixedSize
\r
168 object IList.this[int index]
\r
172 return this[index];
\r
177 AddAt(index, (TableCell)value);
\r