New test.
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / View.cs
1 //\r
2 // System.Web.UI.WebControls.View.cs\r
3 //\r
4 // Authors:\r
5 //      Lluis Sanchez Gual (lluis@novell.com)\r
6 //\r
7 // (C) 2004 Novell, Inc (http://www.novell.com)\r
8 //\r
9 // Permission is hereby granted, free of charge, to any person obtaining\r
10 // a copy of this software and associated documentation files (the\r
11 // "Software"), to deal in the Software without restriction, including\r
12 // without limitation the rights to use, copy, modify, merge, publish,\r
13 // distribute, sublicense, and/or sell copies of the Software, and to\r
14 // permit persons to whom the Software is furnished to do so, subject to\r
15 // the following conditions:\r
16 // \r
17 // The above copyright notice and this permission notice shall be\r
18 // included in all copies or substantial portions of the Software.\r
19 // \r
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
27 //\r
28 // Copyright (C) 2004 Novell, Inc (http://www.novell.com)\r
29 //
30 \r
31 #if NET_2_0\r
32 \r
33 using System;\r
34 using System.Globalization;\r
35 using System.Web;\r
36 using System.Web.UI;\r
37 using System.ComponentModel;\r
38 \r
39 namespace System.Web.UI.WebControls\r
40 {\r
41         [ParseChildrenAttribute (false)]\r
42         [DesignerAttribute ("System.Web.UI.Design.WebControls.ViewDesigner, " + Consts.AssemblySystem_Design, "System.ComponentModel.Design.IDesigner")]\r
43         [ToolboxDataAttribute ("<{0}:View runat=\"server\"></{0}:View>")]\r
44         public class View: Control\r
45         {\r
46                 private static readonly object ActivateEvent = new object();\r
47                 private static readonly object DeactivateEvent = new object();\r
48 \r
49                 public View ()\r
50                 {\r
51                         base.Visible = false;\r
52                 }\r
53                 \r
54                 internal void NotifyActivation (bool activated)\r
55                 {\r
56                         if (activated) OnActivate (EventArgs.Empty);\r
57                         else OnDeactivate (EventArgs.Empty);\r
58                 }\r
59         \r
60                 public event EventHandler Activate {\r
61                         add { Events.AddHandler (ActivateEvent, value); }\r
62                         remove { Events.RemoveHandler (ActivateEvent, value); }\r
63                 }\r
64                 \r
65                 public event EventHandler Deactivate {\r
66                         add { Events.AddHandler (DeactivateEvent, value); }\r
67                         remove { Events.RemoveHandler (DeactivateEvent, value); }\r
68                 }\r
69                 \r
70                 protected virtual void OnActivate (EventArgs e)\r
71                 {\r
72                         if (Events != null) {\r
73                                 EventHandler eh = (EventHandler) Events [ActivateEvent];\r
74                                 if (eh != null) eh (this, e);\r
75                         }\r
76                 }\r
77                 \r
78                 protected virtual void OnDeactivate (EventArgs e)\r
79                 {\r
80                         if (Events != null) {\r
81                                 EventHandler eh = (EventHandler) Events [DeactivateEvent];\r
82                                 if (eh != null) eh (this, e);\r
83                         }\r
84                 }\r
85 \r
86                 internal bool VisibleInternal\r
87                 {\r
88                         get { return base.Visible; }\r
89                         set { base.Visible = value; }\r
90                 }\r
91 \r
92                 public override bool Visible\r
93                 {\r
94                         get { return base.Visible; }\r
95                         set\r
96                         {\r
97                                 throw new InvalidOperationException ("The Visible property of a View control can only be set by setting the active View of a MultiView.");\r
98                         }\r
99                 }\r
100         }\r
101 }\r
102 \r
103 #endif\r