2004-03-29 Umadevi S (sumadevi@novell.com)
[mono.git] / mcs / class / System.Data / System.Data / DataViewSettingCollection.cs
1 //
2 // System.Data.DataViewSettingCollection.cs
3 //
4 // Authors:
5 //   Rodrigo Moya (rodrigo@ximian.com)
6 //   Miguel de Icaza (miguel@gnome.org)
7 //   Tim Coleman (tim@timcoleman.com)
8 //
9 // (C) 2002 Ximian, Inc.  http://www.ximian.com
10 // Copyright (C) Tim Coleman, 2002
11 //
12
13 using System;
14 using System.Collections;
15 using System.ComponentModel;
16
17 namespace System.Data {
18         /// <summary>
19         /// Contains a read-only collection of DataViewSetting objects for each DataTable in a DataSet.
20         /// </summary>
21         [Editor]
22         [Serializable]
23         public class DataViewSettingCollection : ICollection, IEnumerable 
24         {
25                 #region Fields
26
27                 ArrayList settingList;
28
29                 #endregion // Fields
30
31                 #region Constructors
32
33                 internal DataViewSettingCollection (DataViewManager manager)
34                 {
35                 }
36
37                 #endregion // Constructors
38
39                 #region Properties
40         
41                 [Browsable (false)]     
42                 public virtual int Count {
43                         get { return settingList.Count; }
44                 }
45
46                 [Browsable (false)]     
47                 public bool IsReadOnly {
48                         get { return settingList.IsReadOnly; }
49                 }
50
51                 [Browsable (false)]     
52                 public bool IsSynchronized {
53                         get { return settingList.IsSynchronized; }
54                 }
55
56                 public virtual DataViewSetting this [DataTable dt] {
57                         get {
58                                 for (int i = 0; i < settingList.Count; i++) {
59                                         DataViewSetting dvs = (DataViewSetting) settingList[i];
60                                         if (dvs.Table == dt)
61                                                 return dvs;
62                                 }
63                                 return null;
64                         }
65                         set {
66                                 this[dt] = value;
67                         }
68                 }
69
70                 public virtual DataViewSetting this[string name] {
71                         get {
72                                 for (int i = 0; i < settingList.Count; i++) {
73                                         DataViewSetting dvs = (DataViewSetting) settingList[i];
74                                         if (dvs.Table.TableName == name)
75                                                 return dvs;
76                                 }
77                                 return null;
78                         }
79                 }
80
81                 public virtual DataViewSetting this[int index] {
82                         get { return (DataViewSetting) settingList[index]; }
83                         set { settingList[index] = value; }
84                 }
85
86                 [Browsable (false)]     
87                 public object SyncRoot {
88                         get { return settingList.SyncRoot; }
89                 }
90
91                 #endregion // Properties
92
93                 #region Methods
94
95                 public void CopyTo (Array ar, int index) 
96                 {
97                         settingList.CopyTo (ar, index);
98                 }
99
100                 public IEnumerator GetEnumerator () 
101                 {
102                         return settingList.GetEnumerator ();
103                 }
104
105                 #endregion // Methods
106         }
107 }