2002-08-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[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 sealed 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                 internal bool IsPagerOnTop\r
37                 {\r
38                         get {\r
39                                 PagerPosition p = Position;\r
40                                 return (p == PagerPosition.Top || p == PagerPosition.TopAndBottom);\r
41                         }\r
42                 }\r
43                 \r
44                 internal bool IsPagerOnBottom\r
45                 {\r
46                         get {\r
47                                 PagerPosition p = Position;\r
48                                 return (p == PagerPosition.Bottom || p == PagerPosition.TopAndBottom);\r
49                         }\r
50                 }\r
51                 \r
52                 public PagerMode Mode\r
53                 {\r
54                         get\r
55                         {\r
56                                 if(IsSet(MODE))\r
57                                 {\r
58                                         return (PagerMode)ViewState["Mode"];\r
59                                 }\r
60                                 return PagerMode.NextPrev;\r
61                         }\r
62                         set\r
63                         {\r
64                                 if(!Enum.IsDefined(typeof(PagerMode), value))\r
65                                 {\r
66                                         throw new NotImplementedException();\r
67                                 }\r
68                                 ViewState["Mode"] = value;\r
69                                 Set(MODE);\r
70                         }\r
71                 }\r
72 \r
73                 public string NextPageText\r
74                 {\r
75                         get\r
76                         {\r
77                                 if(IsSet(NEXT_PG_TEXT))\r
78                                 {\r
79                                         return (string)ViewState["NextPageText"];\r
80                                 }\r
81                                 return "&gt;";\r
82                         }\r
83                         set\r
84                         {\r
85                                 ViewState["NextPageText"] = value;\r
86                                 Set(NEXT_PG_TEXT);\r
87                         }\r
88                 }\r
89 \r
90                 public string PrevPageText\r
91                 {\r
92                         get\r
93                         {\r
94                                 if(IsSet(PREV_PG_TEXT))\r
95                                 {\r
96                                         return (string)ViewState["PrevPageText"];\r
97                                 }\r
98                                 return "&lt;";\r
99                         }\r
100                         set\r
101                         {\r
102                                 ViewState["PrevPageText"] = value;\r
103                                 Set(PREV_PG_TEXT);\r
104                         }\r
105                 }\r
106 \r
107                 public int PageButtonCount\r
108                 {\r
109                         get\r
110                         {\r
111                                 if(IsSet(PG_BTN_COUNT))\r
112                                 {\r
113                                         return (int)ViewState["PageButtonCount"];\r
114                                 }\r
115                                 return 10;\r
116                         }\r
117                         set\r
118                         {\r
119                                 ViewState["PageButtonCount"] = value;\r
120                                 Set(PG_BTN_COUNT);\r
121                         }\r
122                 }\r
123 \r
124                 public PagerPosition Position\r
125                 {\r
126                         get\r
127                         {\r
128                                 if(IsSet(POSITION))\r
129                                 {\r
130                                         return (PagerPosition)ViewState["Position"];\r
131                                 }\r
132                                 return PagerPosition.Bottom;\r
133                         }\r
134                         set\r
135                         {\r
136                                 if(!Enum.IsDefined(typeof(PagerPosition), value))\r
137                                 {\r
138                                         throw new ArgumentException();\r
139                                 }\r
140                                 ViewState["Position"] = value;\r
141                                 Set(POSITION);\r
142                         }\r
143                 }\r
144 \r
145                 public bool Visible\r
146                 {\r
147                         get\r
148                         {\r
149                                 if(IsSet(VISIBLE))\r
150                                 {\r
151                                         return (bool)ViewState["Visible"];\r
152                                 }\r
153                                 return true;\r
154                         }\r
155                         set\r
156                         {\r
157                                 ViewState["Visible"] = value;\r
158                                 Set(PG_BTN_COUNT);\r
159                         }\r
160                 }\r
161 \r
162                 public override void CopyFrom(Style s)\r
163                 {\r
164                         if(s != null && !s.IsEmpty && s is DataGridPagerStyle)\r
165                         {\r
166                                 base.CopyFrom(s);\r
167                                 DataGridPagerStyle from = (DataGridPagerStyle)s;\r
168                                 if(from.IsSet(MODE))\r
169                                 {\r
170                                         Mode = from.Mode;\r
171                                 }\r
172                                 if(from.IsSet(NEXT_PG_TEXT))\r
173                                 {\r
174                                         NextPageText = from.NextPageText;\r
175                                 }\r
176                                 if(from.IsSet(PG_BTN_COUNT))\r
177                                 {\r
178                                         PageButtonCount = from.PageButtonCount;\r
179                                 }\r
180                                 if(from.IsSet(POSITION))\r
181                                 {\r
182                                         Position = from.Position;\r
183                                 }\r
184                                 if(from.IsSet(VISIBLE))\r
185                                 {\r
186                                         Visible = from.Visible;\r
187                                 }\r
188                                 if(from.IsSet(PREV_PG_TEXT))\r
189                                 {\r
190                                         PrevPageText = from.PrevPageText;\r
191                                 }\r
192                         }\r
193                 }\r
194 \r
195                 public override void MergeWith(Style s)\r
196                 {\r
197                         if(s != null && !s.IsEmpty && s is DataGridPagerStyle)\r
198                         {\r
199                                 base.MergeWith(s);\r
200                                 DataGridPagerStyle with = (DataGridPagerStyle)s;\r
201                                 if(with.IsSet(MODE) && !IsSet(MODE))\r
202                                 {\r
203                                         Mode = with.Mode;\r
204                                 }\r
205                                 if(with.IsSet(NEXT_PG_TEXT) && !IsSet(NEXT_PG_TEXT))\r
206                                 {\r
207                                         NextPageText = with.NextPageText;\r
208                                 }\r
209                                 if(with.IsSet(PG_BTN_COUNT) && !IsSet(PG_BTN_COUNT))\r
210                                 {\r
211                                         PageButtonCount = with.PageButtonCount;\r
212                                 }\r
213                                 if(with.IsSet(POSITION) && !IsSet(POSITION))\r
214                                 {\r
215                                         Position = with.Position;\r
216                                 }\r
217                                 if(with.IsSet(VISIBLE) && !IsSet(VISIBLE))\r
218                                 {\r
219                                         Visible = with.Visible;\r
220                                 }\r
221                                 if(with.IsSet(PREV_PG_TEXT) && !IsSet(PREV_PG_TEXT))\r
222                                 {\r
223                                         PrevPageText = with.PrevPageText;\r
224                                 }\r
225                         }\r
226                 }\r
227 \r
228                 public override void Reset()\r
229                 {\r
230                         if(IsSet(MODE))\r
231                         {\r
232                                 ViewState.Remove("Mode");\r
233                         }\r
234                         if(IsSet(NEXT_PG_TEXT))\r
235                         {\r
236                                 ViewState.Remove("NextPageText");\r
237                         }\r
238                         if(IsSet(PG_BTN_COUNT))\r
239                         {\r
240                                 ViewState.Remove("PageButtonCount");\r
241                         }\r
242                         if(IsSet(POSITION))\r
243                         {\r
244                                 ViewState.Remove("Position");\r
245                         }\r
246                         if(IsSet(VISIBLE))\r
247                         {\r
248                                 ViewState.Remove("Visible");\r
249                         }\r
250                         if(IsSet(PREV_PG_TEXT))\r
251                         {\r
252                                 ViewState.Remove("PrevPageText");\r
253                         }\r
254                         base.Reset();\r
255                 }\r
256         }\r
257 }\r