* Mono.Posix.dll.sources: Rename Mono.Posix to Mono.Unix.
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls.WebParts / Part.cs
1 //\r
2 // System.Web.UI.WebControls.WebParts.Part.cs\r
3 //\r
4 // Authors:\r
5 //   Gaurav Vaish (gaurav[DOT]vaish[AT]gmail[DOT]com)\r
6 //\r
7 // (C) 2004 Gaurav Vaish (http://www.mastergaurav.org)\r
8 //\r
9 \r
10 //\r
11 // Permission is hereby granted, free of charge, to any person obtaining\r
12 // a copy of this software and associated documentation files (the\r
13 // "Software"), to deal in the Software without restriction, including\r
14 // without limitation the rights to use, copy, modify, merge, publish,\r
15 // distribute, sublicense, and/or sell copies of the Software, and to\r
16 // permit persons to whom the Software is furnished to do so, subject to\r
17 // the following conditions:\r
18 //\r
19 // The above copyright notice and this permission notice shall be\r
20 // included in all copies or substantial portions of the Software.\r
21 //\r
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
29 //\r
30 \r
31 #if NET_2_0\r
32 \r
33 using System;\r
34 using System.ComponentModel;\r
35 using System.Web;\r
36 using System.Web.UI.WebControls;\r
37 \r
38 namespace System.Web.UI.WebControls.WebParts\r
39 {\r
40         public abstract class Part : Panel, INamingContainer,\r
41                                      ICompositeControlDesignerAccessor\r
42         {\r
43                 internal Part()\r
44                 { }\r
45 \r
46                 public virtual PartChromeState ChromeState\r
47                 {\r
48                         get {\r
49                                 object o = ViewState["ChromeState"];\r
50                                 if(o != null)\r
51                                         return (PartChromeState)o;\r
52                                 return PartChromeState.Normal;\r
53                         }\r
54                         set {\r
55                                 if(!Enum.IsDefined(typeof(PartChromeState), value))\r
56                                         throw new ArgumentException("value");\r
57                                 ViewState["ChromeState"] = value;\r
58                         }\r
59                 }\r
60 \r
61                 public virtual PartChromeType ChromeType\r
62                 {\r
63                         get {\r
64                                 object o = ViewState["ChromeType"];\r
65                                 if(o != null)\r
66                                         return (PartChromeType)o;\r
67                                 return PartChromeType.Default;\r
68                         }\r
69                         set {\r
70                                 if(!Enum.IsDefined(typeof(PartChromeType), value))\r
71                                         throw new ArgumentException("value");\r
72                                 ViewState["ChromeType"] = value;\r
73                         }\r
74                 }\r
75 \r
76                 public override ControlCollection Controls\r
77                 {\r
78                         get {\r
79                                 EnsureChildControls();\r
80                                 return Controls;\r
81                         }\r
82                 }\r
83 \r
84                 [Localizable(true)]\r
85                 public virtual string Description\r
86                 {\r
87                         get {\r
88                                 object o = ViewState["Description"];\r
89                                 if(o != null)\r
90                                         return (string)o;\r
91                                 return String.Empty;\r
92                         }\r
93                         set {\r
94                                 ViewState["Description"] = value;\r
95                         }\r
96                 }\r
97 \r
98                 [Localizable(true)]\r
99                 public virtual string Title\r
100                 {\r
101                         get {\r
102                                 object o = ViewState["Title"];\r
103                                 if(o != null)\r
104                                         return (string)o;\r
105                                 return String.Empty;\r
106                         }\r
107                         set {\r
108                                 ViewState["Title"] = value;\r
109                         }\r
110                 }\r
111 \r
112                 public override void DataBind()\r
113                 {\r
114                         OnDataBinding(EventArgs.Empty);\r
115                         EnsureChildControls();\r
116                         DataBindChildren();\r
117                 }\r
118 \r
119                 void ICompositeControlDesignerAccessor.RecreateChildControls()\r
120                 {\r
121                         ChildControlsCreated = false;\r
122                         EnsureChildControls();\r
123                 }\r
124         }\r
125 }\r
126 \r
127 #endif\r