Reject incomplete conversion unary user operators. Fixes #7935.
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls.WebParts / WebPart.cs
1 //
2 // System.Web.UI.WebControls.WebParts.Part
3 //
4 // Authors: Chris Toshok <toshok@novell.com>
5 //
6 // Copyright (C) 2005 Novell, Inc (http://www.novell.com)
7 //
8 // Permission is hereby granted, free of charge, to any person obtaining
9 // a copy of this software and associated documentation files (the
10 // "Software"), to deal in the Software without restriction, including
11 // without limitation the rights to use, copy, modify, merge, publish,
12 // distribute, sublicense, and/or sell copies of the Software, and to
13 // permit persons to whom the Software is furnished to do so, subject to
14 // the following conditions:
15 // 
16 // The above copyright notice and this permission notice shall be
17 // included in all copies or substantial portions of the Software.
18 // 
19 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
23 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
24 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
25 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26 //
27
28 #if NET_2_0
29 using System;
30
31 namespace System.Web.UI.WebControls.WebParts
32 {
33         public abstract class WebPart : Part, IWebPart, IWebActionable
34 #if IWebEditableInterface
35           , IWebEditable
36 #endif
37         {
38                 [Flags]
39                 enum Allow {
40                         Close      = 0x01,
41                         Connect    = 0x02,
42                         Edit       = 0x04,
43                         Hide       = 0x08,
44                         Minimize   = 0x10,
45                         ZoneChange = 0x20
46                 }
47
48
49                 WebPartVerbCollection verbs = new WebPartVerbCollection();
50                 Allow allow;
51                 string auth_filter;
52                 string catalog_icon_url;
53                 WebPartExportMode exportMode = WebPartExportMode.None;
54                 string  titleIconImageUrl,       
55                                 titleUrl,                       
56                                 helpUrl;
57                 bool isStatic, hidden, isClosed, hasSharedData, hasUserData;
58                 WebPartHelpMode helpMode = WebPartHelpMode.Navigate;
59                 int zoneIndex ;
60
61                 protected WebPart ()
62                 {
63                         verbs = new WebPartVerbCollection();
64                         allow = Allow.Close | Allow.Connect | Allow.Edit | Allow.Hide | Allow.Minimize | Allow.ZoneChange;
65                         auth_filter = "";
66                         catalog_icon_url = "";
67                         titleIconImageUrl       = string.Empty;
68                         titleUrl                = string.Empty;
69                         helpUrl                 = string.Empty;
70                         isStatic                = false;
71                         hasUserData             = false;
72                         hasSharedData   = false;
73                         hidden = false;
74                         isClosed = false;
75                 }
76
77 #if IWebEditableInterface
78                 [MonoTODO("Not implemented")]
79                 public virtual EditorPartCollection CreateEditorParts ()
80                 {
81                         throw new NotImplementedException ();
82                 }
83 #endif
84
85                 [MonoTODO("Not implemented")]
86                 protected void SetPersonalizationDirty ()
87                 {
88                         throw new NotImplementedException ();
89                 }
90
91                 [MonoTODO("Not implemented")]
92                 public static void SetPersonalizationDirty (Control control)
93                 {
94                         throw new NotImplementedException ();
95                 }
96
97                 protected override void TrackViewState ()
98                 {
99                         base.TrackViewState();
100
101                         foreach (IStateManager verb in verbs) {
102                                 verb.TrackViewState();
103                         }
104                 }
105
106                 internal void SetZoneIndex (int index)
107                 {
108                         zoneIndex = index;
109                 }
110                 
111                 protected internal virtual void OnClosing (EventArgs e)
112                 { /* no base class implementation */ }
113
114                 protected internal virtual void OnConnectModeChanged (EventArgs e)
115                 { /* no base class implementation */ }
116
117                 protected internal virtual void OnDeleting (EventArgs e)
118                 { /* no base class implementation */ }
119
120                 protected internal virtual void OnEditModeChanged (EventArgs e)
121                 { /* no base class implementation */ }
122
123                 [WebSysDescriptionAttribute ("")]
124                 [WebCategoryAttribute ("Behavior")]
125                 public virtual bool AllowClose 
126                 {
127                         get {
128                                 return (allow & Allow.Close) != 0;
129                         }
130                         set {
131                                 if (value)
132                                         allow |= Allow.Close;
133                                 else
134                                         allow &= ~Allow.Close;
135                         }
136                 }
137
138                 [WebSysDescriptionAttribute ("")]
139                 [WebCategoryAttribute ("Behavior")]
140                 public virtual bool AllowConnect 
141                 {
142                         get {
143                                 return (allow & Allow.Connect) != 0;
144                         }
145                         set {
146                                 if (value)
147                                         allow |= Allow.Connect;
148                                 else
149                                         allow &= ~Allow.Connect;
150                         }
151                 }
152
153                 [WebSysDescriptionAttribute ("")]
154                 [WebCategoryAttribute ("Behavior")]
155                 public virtual bool AllowEdit 
156                 {
157                         get {
158                                 return (allow & Allow.Edit) != 0;
159                         }
160                         set {
161                                 if (value)
162                                         allow |= Allow.Edit;
163                                 else
164                                         allow &= ~Allow.Edit;
165                         }
166                 }
167
168                 [WebSysDescriptionAttribute ("")]
169                 [WebCategoryAttribute ("Behavior")]
170                 public virtual bool AllowHide 
171                 {
172                         get {
173                                 return (allow & Allow.Hide) != 0;
174                         }
175                         set {
176                                 if (value)
177                                         allow |= Allow.Hide;
178                                 else
179                                         allow &= ~Allow.Hide;
180                         }
181                 }
182
183                 [WebSysDescriptionAttribute ("")]
184                 [WebCategoryAttribute ("Behavior")]
185                 public virtual bool AllowMinimize 
186                 {
187                         get {
188                                 return (allow & Allow.Minimize) != 0;
189                         }
190                         set {
191                                 if (value)
192                                         allow |= Allow.Minimize;
193                                 else
194                                         allow &= ~Allow.Minimize;
195                         }
196                 }
197
198                 [WebSysDescriptionAttribute ("")]
199                 [WebCategoryAttribute ("Behavior")]
200                 public virtual bool AllowZoneChange 
201                 {
202                         get {
203                                 return (allow & Allow.ZoneChange) != 0;
204                         }
205                         set {
206                                 if (value)
207                                         allow |= Allow.ZoneChange;
208                                 else
209                                         allow &= ~Allow.ZoneChange;
210                         }
211                 }
212
213                 public virtual string AuthorizationFilter 
214                 {
215                         get {
216                                 return auth_filter;
217                         }
218                         set {
219                                 auth_filter = value;
220                         }
221                 }
222
223                 public virtual string CatalogIconImageUrl 
224                 {
225                         get {
226                                 return catalog_icon_url;
227                         }
228                         set {
229                                 catalog_icon_url = value;
230                         }
231                 }
232
233                 public override PartChromeState ChromeState 
234                 {
235                         get {
236                                 return base.ChromeState;
237                         }
238                         set {
239                                 base.ChromeState = value;
240                         }
241                 }
242
243                 public override PartChromeType ChromeType 
244                 {
245                         get {
246                                 return base.ChromeType;
247                         }
248                         set {
249                                 base.ChromeType = value;
250                         }
251                 }
252
253                 [MonoTODO("Not implemented")]
254                 public string ConnectErrorMessage 
255                 {
256                         get {
257                                 return "";
258                         }
259                 }
260
261                 public override string Description 
262                 {
263                         get {
264                                 return base.Description;
265                         }
266                         set {
267                                 base.Description = value;
268                         }
269                 }
270
271                 [MonoTODO("Not implemented")]
272                 /* msdn2 lists this as an override, but it doesn't appear to work with our implementation */
273                 public override ContentDirection Direction 
274                 {
275                         get {
276                                 throw new NotImplementedException ();
277                         }
278                         set {
279                                 throw new NotImplementedException ();
280                         }
281                 }
282
283                 public string DisplayTitle 
284                 {
285                         get {
286                                 return "Untitled";
287                         }
288                 }
289
290                 public virtual WebPartExportMode ExportMode 
291                 {
292                         get {
293                                 return exportMode;
294                         }
295                         set {
296                                 exportMode = value;
297                         }
298                 }
299
300                 public bool HasSharedData 
301                 {
302                         get {
303                                 return hasSharedData;
304                         }
305                 }
306
307                 public bool HasUserData 
308                 {
309                         get {
310                                 return hasUserData;
311                         }
312                 }
313
314                 public override Unit Height 
315                 {
316                         get {
317                                 return base.Height;
318                         }
319                         set {
320                                 base.Height = value;
321                         }
322                 }
323
324                 public virtual WebPartHelpMode HelpMode 
325                 {
326                         get {
327                                 return helpMode;
328                         }
329                         set {
330                                 helpMode = value;
331                         }
332                 }
333
334                 public virtual string HelpUrl 
335                 {
336                         get {
337                                 return helpUrl;
338                         }
339                         set {
340                                 helpUrl = value;
341                         }
342                 }
343
344                 public virtual bool Hidden 
345                 {
346                         get {
347                                 return hidden;
348                         }
349                         set {
350                                 hidden = value;
351                         }
352                 }
353
354                 public virtual string ImportErrorMessage 
355                 {
356                         get {
357                                 return ViewState.GetString("ImportErrorMessage", "Cannot import this Web Part.");
358                         }
359                         set {
360                                 ViewState ["ImportErrorMessage"] = value;
361                         }
362                 }
363
364                 public bool IsClosed 
365                 {
366                         get {
367                                 return isClosed;
368                         }
369                 }
370
371                 public bool IsShared 
372                 {
373                         get {
374                                 return false;
375                         }
376                 }
377
378                 public bool IsStandalone 
379                 {
380                         get {
381                                 return true;
382                         }
383                 }
384
385                 public bool IsStatic 
386                 {
387                         get {
388                                 return isStatic;
389                         }
390                 }
391
392                 public virtual string Subtitle 
393                 {
394                         get {
395                                 return string.Empty;
396                         }
397                 }
398
399                 public override string Title 
400                 {
401                         get {
402                                 return base.Title;
403                         }
404                         set {
405                                 base.Title = value;
406                         }
407                 }
408
409                 public virtual string TitleIconImageUrl 
410                 {
411                         get {
412                                 return titleIconImageUrl;
413                         }
414                         set {
415                                 titleIconImageUrl = value;
416                         }
417                 }
418
419                 public virtual string TitleUrl 
420                 {
421                         get {
422                                 return titleUrl;
423                         }
424                         set {
425                                 titleUrl = value;
426                         }
427                 }
428
429                 public virtual WebPartVerbCollection Verbs 
430                 {
431                         get {
432                                 return verbs;
433                         }
434                 }
435
436 #if IWebEditableInterface
437                 [MonoTODO("Not implemented")]
438                 public virtual object WebBrowsableObject 
439                 {
440                         get {
441                                 throw new NotImplementedException ();
442                         }
443                 }
444 #endif
445
446 #if notyet
447                 [MonoTODO("Not implemented")]
448                 protected WebPartManager WebPartManager 
449                 {
450                         get {
451                                 throw new NotImplementedException ();
452                         }
453                 }
454 #endif
455
456                 public override Unit Width 
457                 {
458                         get {
459                                 return base.Width;
460                         }
461                         set {
462                                 base.Width = value;
463                         }
464                 }
465
466 #if notyet
467                 [MonoTODO("Not implemented")]
468                 public WebPartZoneBase Zone 
469                 {
470                         get {
471                                 throw new NotImplementedException ();
472                         }
473                 }
474 #endif
475
476                 public int ZoneIndex 
477                 {
478                         get {
479                                 return zoneIndex;
480                         }
481                 }
482         }
483
484 }
485
486 #endif