New test.
[mono.git] / mcs / class / System.Web / System.Web.UI / HierarchicalDataSourceControl.cs
1 //
2 // System.Web.UI.HierarchicalDataSourceControl
3 //
4 // Authors:
5 //      Ben Maurer (bmaurer@users.sourceforge.net)
6 //      Lluis Sanchez Gual (lluis@novell.com)
7 //
8 //  (C) 2003 Ben Maurer
9 //  (C) 2005 Novell, Inc (http://www.novell.com)
10 //
11
12 //
13 // Permission is hereby granted, free of charge, to any person obtaining
14 // a copy of this software and associated documentation files (the
15 // "Software"), to deal in the Software without restriction, including
16 // without limitation the rights to use, copy, modify, merge, publish,
17 // distribute, sublicense, and/or sell copies of the Software, and to
18 // permit persons to whom the Software is furnished to do so, subject to
19 // the following conditions:
20 // 
21 // The above copyright notice and this permission notice shall be
22 // included in all copies or substantial portions of the Software.
23 // 
24 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
25 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
27 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
28 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
29 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
30 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 //
32
33 #if NET_2_0
34 using System.Collections;
35 using System.Collections.Specialized;
36 using System.Text;
37 using System.ComponentModel;
38
39 namespace System.Web.UI
40 {
41         [NonVisualControlAttribute]
42         [DesignerAttribute ("System.Web.UI.Design.HierarchicalDataSourceDesigner, " + Consts.AssemblySystem_Design, "System.ComponentModel.Design.IDesigner")]
43         [ControlBuilderAttribute (typeof(DataSourceControlBuilder))]
44         [BindableAttribute (false)]
45         public abstract class HierarchicalDataSourceControl : Control, IHierarchicalDataSource
46         {
47                 static object dataSourceChanged = new object ();
48
49                 protected HierarchicalDataSourceControl()
50                 {
51                 }
52                 
53                 protected abstract HierarchicalDataSourceView GetHierarchicalView (string viewPath);
54                 
55                 HierarchicalDataSourceView IHierarchicalDataSource.GetHierarchicalView (string viewPath)
56                 {
57                         return GetHierarchicalView (viewPath);
58                 }
59
60                 [Browsable (false)]
61                 [DefaultValue (false)]
62                 [EditorBrowsable (EditorBrowsableState.Never)]
63                 public override bool EnableTheming {
64                         get { return false; }
65                         set { throw new NotSupportedException (); }
66                 }
67                 
68                 [Browsable (false)]
69                 [DefaultValue ("")]
70                 [EditorBrowsable (EditorBrowsableState.Never)]
71                 public override string SkinID {
72                         get { return string.Empty; }
73                         set { throw new NotSupportedException (); }
74                 }
75                 
76                 [Browsable (false)]
77                 [DefaultValue (false)]
78                 [EditorBrowsable (EditorBrowsableState.Never)]
79                 public override bool Visible { 
80                         get { return false; }
81                         set { throw new NotSupportedException (); }
82                 }
83
84                 protected override ControlCollection CreateControlCollection ()
85                 {
86                         return new EmptyControlCollection (this);
87                 }
88                 
89                 [EditorBrowsable (EditorBrowsableState.Never)]
90                 public override Control FindControl (string id)
91                 {
92                         if (id == ID) return this;
93                         else return null;
94                 }
95                 
96                 [EditorBrowsable (EditorBrowsableState.Never)]
97                 public override bool HasControls ()
98                 {
99                         return false;
100                 }
101                 
102                 [EditorBrowsable (EditorBrowsableState.Never)]
103                 public override void Focus ()
104                 {
105                         throw new NotSupportedException ();
106                 }
107                 
108                 event EventHandler System.Web.UI.IHierarchicalDataSource.DataSourceChanged {
109                         add { Events.AddHandler (dataSourceChanged, value); }
110                         remove { Events.RemoveHandler (dataSourceChanged, value); }
111                 }
112                 
113                 protected virtual void OnDataSourceChanged (EventArgs e)
114                 {
115                         EventHandler eh = Events [dataSourceChanged] as EventHandler;
116                         if (eh != null)
117                                 eh (this, e);
118                 }
119                 
120                 [EditorBrowsable (EditorBrowsableState.Never)]
121                 public override void RenderControl (HtmlTextWriter writer)
122                 {
123                         // nop
124                 }
125         }
126         
127
128 }
129 #endif
130