* Makefile: Build the make-map.exe in Mono.Unix.Native; add /nowarn:0618 to
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / DataGridColumnCollection.cs
index 8b8ccc2a483a27f0f96c7e2b8246c9014ee99771..c223aef2e95b4fde06f0819e0bf1a890b931d266 100644 (file)
@@ -1,4 +1,10 @@
-
+//
+// System.Web.UI.WebControls.DataGridColumnCollection
+//
+// Authors:
+//     Ben Maurer (bmaurer@novell.com)
+//
+// (C) 2005 Novell, Inc (http://www.novell.com)
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-/**\r
- * Namespace: System.Web.UI.WebControls\r
- * Class:     DataGridColumnCollection\r
- *\r
- * Author:  Gaurav Vaish\r
- * Maintainer: gvaish@iitk.ac.in\r
- * Contact: <my_scripts2001@yahoo.com>, <gvaish@iitk.ac.in>\r
- * Implementation: yes\r
- * Status:  ??%\r
- *\r
- * (C) Gaurav Vaish (2002)\r
- */\r
-\r
-using System;
-using System.ComponentModel;\r
-using System.Collections;\r
-using System.Web;\r
-using System.Web.UI;\r
-\r
-namespace System.Web.UI.WebControls\r
-{\r
-       public sealed class DataGridColumnCollection : ICollection, IEnumerable, IStateManager\r
-       {\r
-               private DataGrid  owner;\r
-               private ArrayList columns;\r
-               private bool      trackViewState;\r
-\r
-               public DataGridColumnCollection(DataGrid owner, ArrayList columns)\r
-               {\r
-                       this.owner   = owner;\r
-                       this.columns = columns;\r
-               }\r
 
-               [Browsable (false)]\r
-               public int Count\r
-               {\r
-                       get\r
-                       {\r
-                               return columns.Count;\r
-                       }\r
-               }\r
+using System.Collections;
+using System.ComponentModel;
 
-               [Browsable (false)]\r
-               public bool IsReadOnly\r
-               {\r
-                       get\r
-                       {\r
-                               return false;\r
-                       }\r
-               }\r
+namespace System.Web.UI.WebControls {
+       public sealed class DataGridColumnCollection : ICollection, IStateManager {
+               public DataGridColumnCollection (DataGrid owner, ArrayList columns)
+               {
+                       this.owner = owner;
+                       this.columns = columns;
+               }
+       
+       
+               public void Add (DataGridColumn column)
+               {
+                       columns.Add (column);
+                       column.Set_Owner (owner);
+                       if (track)
+                               ((IStateManager) column).TrackViewState ();
+               }
+       
+               public void AddAt (int index, DataGridColumn column)
+               {
+                       columns.Insert (index, column);
+                       column.Set_Owner (owner);
+                       if (track)
+                               ((IStateManager) column).TrackViewState ();
+               }
+       
+               public void Clear ()
+               {
+                       columns.Clear ();
+               }
+       
+               public void CopyTo (Array array, int index)
+               {
+                       columns.CopyTo (array, index);
+               }
+       
+               public IEnumerator GetEnumerator ()
+               {
+                       return columns.GetEnumerator ();
+               }
+       
+               public int IndexOf (DataGridColumn column)
+               {
+                       return columns.IndexOf (column);
+               }
 
-               [Browsable (false)]\r
-               public bool IsSynchronized\r
-               {\r
-                       get\r
-                       {\r
-                               return false;\r
-                       }\r
-               }\r
+               [Obsolete ("figure out what you need with me")]
+               internal void OnColumnsChanged ()
+               {
+                       // Do something
+               }
+       
+               public void Remove (DataGridColumn column)
+               {
+                       columns.Remove (column);
+               }
+       
+               public void RemoveAt (int index)
+               {
+                       columns.RemoveAt (index);
+               }
+       
+               void System.Web.UI.IStateManager.LoadViewState (object savedState)
+               {
+                       object [] o = (object []) savedState;
+                       if (o == null)
+                               return;
 
-               [Browsable (false)]\r
-               public DataGridColumn this[int index]\r
-               {\r
-                       get\r
-                       {\r
-                               return (DataGridColumn)(columns[index]);\r
-                       }\r
-               }\r
+                       int i = 0;
+                       foreach (IStateManager ism in this)
+                               ism.LoadViewState (o [i++]);
+               }
+       
+               object System.Web.UI.IStateManager.SaveViewState ()
+               {
+                       object [] o = new object [Count];
 
-               [Browsable (false)]\r
-               public object SyncRoot\r
-               {\r
-                       get\r
-                       {\r
-                               return this;\r
-                       }\r
-               }\r
-\r
-               public void Add(DataGridColumn column)\r
-               {\r
-                       AddAt(-1, column);\r
-               }\r
-\r
-               public void AddAt(int index, DataGridColumn column)\r
-               {\r
-                       if(index == -1)\r
-                       {\r
-                               columns.Add(column);\r
-                       } else\r
-                       {\r
-                               columns.Insert(index, column);\r
-                       }\r
-\r
-                       column.SetOwner (owner);\r
-                       if(trackViewState)\r
-                       {\r
-                               ((IStateManager)column).TrackViewState();\r
-                       }\r
-                       OnColumnsChanged();\r
-               }\r
-\r
-               internal void OnColumnsChanged()\r
-               {\r
-                       if(owner != null)\r
-                       {\r
-                               owner.OnColumnsChanged();\r
-                       }\r
-               }\r
-\r
-               public void Clear()\r
-               {\r
-                       columns.Clear();\r
-                       OnColumnsChanged();\r
-               }\r
-\r
-               public void CopyTo(Array array, int index)\r
-               {\r
-                       foreach(DataGridColumn current in this)\r
-                       {\r
-                               array.SetValue(current, index++);\r
-                       }\r
-               }\r
-\r
-               public IEnumerator GetEnumerator()\r
-               {\r
-                       return columns.GetEnumerator();\r
-               }\r
-\r
-               public int IndexOf(DataGridColumn column)\r
-               {\r
-                       if(column != null)\r
-                       {\r
-                               return columns.IndexOf(column);\r
-                       }\r
-                       return -1;\r
-               }\r
-\r
-               public void Remove(DataGridColumn column)\r
-               {\r
-                       if(column != null)\r
-                       {\r
-                               RemoveAt(IndexOf(column));\r
-                       }\r
-               }\r
-\r
-               public void RemoveAt(int index)\r
-               {\r
-                       if(index >= 0 && index < columns.Count)\r
-                       {\r
-                               columns.RemoveAt(index);\r
-                               OnColumnsChanged();\r
-                               return;\r
-                       }\r
-                       //This exception is not documented, but thrown\r
-                       throw new ArgumentOutOfRangeException("string");\r
-               }\r
-\r
-               object IStateManager.SaveViewState()\r
-               {\r
-                       if (columns.Count == 0)\r
-                               return null;\r
-\r
-                       ArrayList retVal = new ArrayList (columns.Count);
-                       bool found = false;\r
-                       foreach (IStateManager current in columns) {
-                               object o = current.SaveViewState ();\r
-                               retVal.Add (o);
-                               if (o != null)
-                                       found = true;
-                       }\r
-\r
-                       if (!found)
-                               return null;
-                       
-                       return retVal;\r
-               }\r
-\r
-               void IStateManager.LoadViewState(object savedState)\r
-               {\r
-                       if (savedState == null || !(savedState is ArrayList))\r
-                               return;\r
-\r
-                       ArrayList list = (ArrayList) savedState;\r
-                       int end = list.Count;\r
-                       if (end != columns.Count)\r
-                               return;\r
-\r
-                       for (int i = 0; i < end; i++) {\r
-                               IStateManager col = (IStateManager) columns [i];\r
-                               col.LoadViewState (list [i]);\r
-                       }\r
-               }\r
+                       int i = 0;
+                       foreach (IStateManager ism in this)
+                               o [i++] = ism.SaveViewState ();
 
-               void IStateManager.TrackViewState()
+                       foreach (object a in o)
+                               if (a != null)
+                                       return o;
+                       return null;
+               }
+       
+               void System.Web.UI.IStateManager.TrackViewState ()
                {
-                       trackViewState = true;
-                       foreach (IStateManager col in columns)
-                               col.TrackViewState ();
+                       track = true;
+                       foreach (IStateManager ism in this)
+                               ism.TrackViewState ();
                }
 
-               bool IStateManager.IsTrackingViewState\r
-               {\r
-                       get\r
-                       {\r
-                               return trackViewState;\r
-                       }\r
-               }\r
-       }\r
-}\r
+               [Browsable(false)]
+               public int Count {
+                       get { return columns.Count; }
+               }
+       
+               bool IStateManager.IsTrackingViewState {
+                       get { return track; }
+               }
+       
+               [Browsable(false)]
+               public bool IsReadOnly {
+                       get { return columns.IsReadOnly; }
+               }
+       
+               [Browsable(false)]
+               public bool IsSynchronized {
+                       get { return columns.IsSynchronized; }  
+               }
+
+               [Browsable(false)]
+               public DataGridColumn this [int index] {
+                       get { return (DataGridColumn) columns [index]; }
+               }
+
+               [Browsable(false)]
+               public object SyncRoot {
+                       get { return columns.SyncRoot; }
+               }
+       
+               DataGrid owner;
+               ArrayList columns;
+               bool track;
+       }
+}