8e15bb77b79bd237748f15ee63a387e91b556f1e
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / DataGridPagerStyle.cs
1 /**\r
2  * Namespace: System.Web.UI.WebControls\r
3  * Class:     DataGridPagerStyle\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.Web;\r
16 using System.Web.UI;\r
17 \r
18 namespace System.Web.UI.WebControls\r
19 {\r
20         public class DataGridPagerStyle : TableItemStyle\r
21         {\r
22                 DataGrid owner;\r
23 \r
24                 private static int MODE         = (0x01 << 19);\r
25                 private static int NEXT_PG_TEXT = (0x01 << 20);\r
26                 private static int PG_BTN_COUNT = (0x01 << 21);\r
27                 private static int POSITION     = (0x01 << 22);\r
28                 private static int VISIBLE      = (0x01 << 23);\r
29                 private static int PREV_PG_TEXT = (0x01 << 24);\r
30 \r
31                 internal DataGridPagerStyle(DataGrid owner): base()\r
32                 {\r
33                         this.owner = owner;\r
34                 }\r
35 \r
36                 public PagerMode Mode\r
37                 {\r
38                         get\r
39                         {\r
40                                 if(IsSet(MODE))\r
41                                 {\r
42                                         return (PagerMode)ViewState["Mode"];\r
43                                 }\r
44                                 return PagerMode.NextPrev;\r
45                         }\r
46                         set\r
47                         {\r
48                                 if(!Enum.IsDefined(typeof(PagerMode), value))\r
49                                 {\r
50                                         throw new NotImplementedException();\r
51                                 }\r
52                                 ViewState["Mode"] = value;\r
53                                 Set(MODE);\r
54                         }\r
55                 }\r
56 \r
57                 public string NextPageText\r
58                 {\r
59                         get\r
60                         {\r
61                                 if(IsSet(NEXT_PG_TEXT))\r
62                                 {\r
63                                         return (string)ViewState["NextPageText"];\r
64                                 }\r
65                                 return "&gt;";\r
66                         }\r
67                         set\r
68                         {\r
69                                 ViewState["NextPageText"] = value;\r
70                                 Set(NEXT_PG_TEXT);\r
71                         }\r
72                 }\r
73 \r
74                 public string PrevPageText\r
75                 {\r
76                         get\r
77                         {\r
78                                 if(IsSet(PREV_PG_TEXT))\r
79                                 {\r
80                                         return (string)ViewState["PrevPageText"];\r
81                                 }\r
82                                 return "&lt;";\r
83                         }\r
84                         set\r
85                         {\r
86                                 ViewState["PrevPageText"] = value;\r
87                                 Set(PREV_PG_TEXT);\r
88                         }\r
89                 }\r
90 \r
91                 public int PageButtonCount\r
92                 {\r
93                         get\r
94                         {\r
95                                 if(IsSet(PG_BTN_COUNT))\r
96                                 {\r
97                                         return (int)ViewState["PageButtonCount"];\r
98                                 }\r
99                                 return 10;\r
100                         }\r
101                         set\r
102                         {\r
103                                 ViewState["PageButtonCount"] = value;\r
104                                 Set(PG_BTN_COUNT);\r
105                         }\r
106                 }\r
107 \r
108                 public PagerPosition Position\r
109                 {\r
110                         get\r
111                         {\r
112                                 if(IsSet(POSITION))\r
113                                 {\r
114                                         return (PagerPosition)ViewState["Position"];\r
115                                 }\r
116                                 return PagerPosition.Bottom;\r
117                         }\r
118                         set\r
119                         {\r
120                                 if(!Enum.IsDefined(typeof(PagerPosition), value))\r
121                                 {\r
122                                         throw new ArgumentException();\r
123                                 }\r
124                                 ViewState["Position"] = value;\r
125                                 Set(POSITION);\r
126                         }\r
127                 }\r
128 \r
129                 public bool Visible\r
130                 {\r
131                         get\r
132                         {\r
133                                 if(IsSet(VISIBLE))\r
134                                 {\r
135                                         return (bool)ViewState["Visible"];\r
136                                 }\r
137                                 return true;\r
138                         }\r
139                         set\r
140                         {\r
141                                 ViewState["Visible"] = value;\r
142                                 Set(PG_BTN_COUNT);\r
143                         }\r
144                 }\r
145 \r
146                 public override void CopyFrom(Style s)\r
147                 {\r
148                         if(s != null && !s.IsEmpty && s is DataGridPagerStyle)\r
149                         {\r
150                                 base.CopyFrom(s);\r
151                                 DataGridPagerStyle from = (DataGridPagerStyle)s;\r
152                                 if(from.IsSet(MODE))\r
153                                 {\r
154                                         Mode = from.Mode;\r
155                                 }\r
156                                 if(from.IsSet(NEXT_PG_TEXT))\r
157                                 {\r
158                                         NextPageText = from.NextPageText;\r
159                                 }\r
160                                 if(from.IsSet(PG_BTN_COUNT))\r
161                                 {\r
162                                         PageButtonCount = from.PageButtonCount;\r
163                                 }\r
164                                 if(from.IsSet(POSITION))\r
165                                 {\r
166                                         Position = from.Position;\r
167                                 }\r
168                                 if(from.IsSet(VISIBLE))\r
169                                 {\r
170                                         Visible = from.Visible;\r
171                                 }\r
172                                 if(from.IsSet(PREV_PG_TEXT))\r
173                                 {\r
174                                         PrevPageText = from.PrevPageText;\r
175                                 }\r
176                         }\r
177                 }\r
178 \r
179                 public override void MergeWith(Style s)\r
180                 {\r
181                         if(s != null && !s.IsEmpty && s is DataGridPagerStyle)\r
182                         {\r
183                                 base.MergeWith(s);\r
184                                 DataGridPagerStyle with = (DataGridPagerStyle)s;\r
185                                 if(with.IsSet(MODE) && !IsSet(MODE))\r
186                                 {\r
187                                         Mode = with.Mode;\r
188                                 }\r
189                                 if(with.IsSet(NEXT_PG_TEXT) && !IsSet(NEXT_PG_TEXT))\r
190                                 {\r
191                                         NextPageText = with.NextPageText;\r
192                                 }\r
193                                 if(with.IsSet(PG_BTN_COUNT) && !IsSet(PG_BTN_COUNT))\r
194                                 {\r
195                                         PageButtonCount = with.PageButtonCount;\r
196                                 }\r
197                                 if(with.IsSet(POSITION) && !IsSet(POSITION))\r
198                                 {\r
199                                         Position = with.Position;\r
200                                 }\r
201                                 if(with.IsSet(VISIBLE) && !IsSet(VISIBLE))\r
202                                 {\r
203                                         Visible = with.Visible;\r
204                                 }\r
205                                 if(with.IsSet(PREV_PG_TEXT) && !IsSet(PREV_PG_TEXT))\r
206                                 {\r
207                                         PrevPageText = with.PrevPageText;\r
208                                 }\r
209                         }\r
210                 }\r
211 \r
212                 public override void Reset()\r
213                 {\r
214                         if(IsSet(MODE))\r
215                         {\r
216                                 ViewState.Remove("Mode");\r
217                         }\r
218                         if(IsSet(NEXT_PG_TEXT))\r
219                         {\r
220                                 ViewState.Remove("NextPageText");\r
221                         }\r
222                         if(IsSet(PG_BTN_COUNT))\r
223                         {\r
224                                 ViewState.Remove("PageButtonCount");\r
225                         }\r
226                         if(IsSet(POSITION))\r
227                         {\r
228                                 ViewState.Remove("Position");\r
229                         }\r
230                         if(IsSet(VISIBLE))\r
231                         {\r
232                                 ViewState.Remove("Visible");\r
233                         }\r
234                         if(IsSet(PREV_PG_TEXT))\r
235                         {\r
236                                 ViewState.Remove("PrevPageText");\r
237                         }\r
238                         base.Reset();\r
239                 }\r
240         }\r
241 }\r