2002-11-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / SelectedDatesCollection.cs
1 /**\r
2  * Namespace: System.Web.UI.WebControls\r
3  * Class:     SelectedDatesCollection\r
4  *\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
9  * Status:  100%\r
10  *\r
11  * (C) Gaurav Vaish (2002)\r
12  */\r
13 \r
14 using System;\r
15 using System.Collections;\r
16 using System.Web;\r
17 using System.Web.UI;\r
18 \r
19 namespace System.Web.UI.WebControls\r
20 {\r
21         public sealed class SelectedDatesCollection : ICollection, IEnumerable\r
22         {\r
23                 ArrayList dateList;\r
24 \r
25                 public SelectedDatesCollection(ArrayList dateList)\r
26                 {\r
27                         this.dateList = dateList;\r
28                 }\r
29 \r
30                 public int Count\r
31                 {\r
32                         get\r
33                         {\r
34                                 return dateList.Count;\r
35                         }\r
36                 }\r
37 \r
38                 public bool IsReadOnly\r
39                 {\r
40                         get\r
41                         {\r
42                                 return false;\r
43                         }\r
44                 }\r
45 \r
46                 public bool IsSynchronized\r
47                 {\r
48                         get\r
49                         {\r
50                                 return false;\r
51                         }\r
52                 }\r
53 \r
54                 public DateTime this[int index]\r
55                 {\r
56                         get\r
57                         {\r
58                                 return (DateTime)(dateList[index]);\r
59                         }\r
60                 }\r
61 \r
62                 public object SyncRoot\r
63                 {\r
64                         get\r
65                         {\r
66                                 return this;\r
67                         }\r
68                 }\r
69 \r
70                 public void Add(DateTime date)\r
71                 {\r
72                         dateList.Add(date);\r
73                 }\r
74 \r
75                 public void Clear()\r
76                 {\r
77                         dateList.Clear();\r
78                 }\r
79 \r
80                 public bool Contains(DateTime date)\r
81                 {\r
82                         return dateList.Contains(date);\r
83                 }\r
84 \r
85                 public void CopyTo(Array array, int index)\r
86                 {\r
87                         foreach(DateTime current in this)\r
88                         {\r
89                                 array.SetValue(current, index++);\r
90                         }\r
91                 }\r
92 \r
93                 public IEnumerator GetEnumerator()\r
94                 {\r
95                         return dateList.GetEnumerator();\r
96                 }\r
97 \r
98                 public void Remove(DateTime date)\r
99                 {\r
100                         dateList.Remove(date);\r
101                 }\r
102 \r
103                 public void SelectRange(DateTime fromDate, DateTime toDate)\r
104                 {\r
105                         dateList.Clear();\r
106                         //FIXME: Probable bug in MS implementation. It SHOULD NOT\r
107                         // clear the list if fromDate > toDate\r
108                         if(fromDate > toDate)\r
109                         {\r
110                                 return;\r
111                         }\r
112                         DateTime local = fromDate;\r
113                         do\r
114                         {\r
115                                 dateList.Add(local);\r
116                                 local = local.AddDays(1);\r
117                         } while(local < toDate);\r
118                 }\r
119 \r
120                 internal ArrayList GetDateList ()\r
121                 {\r
122                         return dateList;\r
123                 }\r
124         }\r
125 }\r