2 // System.Web.UI.WebControls.MenuItemBinding.cs
5 // Lluis Sanchez Gual (lluis@novell.com)
7 // (C) 2004-2010 Novell, Inc (http://www.novell.com)
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 using System.Collections;
32 using System.ComponentModel;
34 namespace System.Web.UI.WebControls
36 [DefaultProperty ("TextField")]
37 public sealed class MenuItemBinding: IStateManager, ICloneable, IDataSourceViewSchemaAccessor
39 StateBag ViewState = new StateBag ();
42 public string DataMember {
43 get { return ViewState.GetString ("DataMember", String.Empty); }
44 set { ViewState ["DataMember"] = value; }
49 get { return ViewState.GetInt ("Depth", -1); }
50 set { ViewState ["Depth"] = value; }
55 get { return ViewState.GetBool ("Enabled", true); }
56 set { ViewState ["Enabled"] = value; }
60 [TypeConverter ("System.Web.UI.Design.DataSourceViewSchemaConverter, " + Consts.AssemblySystem_Design)]
61 public string EnabledField {
62 get { return ViewState.GetString ("EnabledField", String.Empty); }
63 set { ViewState ["EnabledField"] = value; }
68 public string FormatString {
69 get { return ViewState.GetString ("FormatString", String.Empty); }
70 set { ViewState ["FormatString"] = value; }
75 [Editor ("System.Web.UI.Design.ImageUrlEditor, " + Consts.AssemblySystem_Design, typeof (System.Drawing.Design.UITypeEditor))]
76 public string ImageUrl {
77 get { return ViewState.GetString ("ImageUrl", String.Empty); }
78 set { ViewState ["ImageUrl"] = value; }
82 [TypeConverter ("System.Web.UI.Design.DataSourceViewSchemaConverter, " + Consts.AssemblySystem_Design)]
83 public string ImageUrlField {
84 get { return ViewState.GetString ("ImageUrlField", String.Empty); }
85 set { ViewState ["ImageUrlField"] = value; }
90 [Editor ("System.Web.UI.Design.UrlEditor, " + Consts.AssemblySystem_Design, typeof (System.Drawing.Design.UITypeEditor))]
91 public string NavigateUrl {
92 get { return ViewState.GetString ("NavigateUrl", String.Empty); }
93 set { ViewState ["NavigateUrl"] = value; }
97 [TypeConverter ("System.Web.UI.Design.DataSourceViewSchemaConverter, " + Consts.AssemblySystem_Design)]
98 public string NavigateUrlField {
99 get { return ViewState.GetString ("NavigateUrlField", String.Empty); }
100 set { ViewState ["NavigateUrlField"] = value; }
103 [DefaultValue (true)]
104 public bool Selectable {
105 get { return ViewState.GetBool ("Selectable", true); }
106 set { ViewState ["Selectable"] = value; }
110 [TypeConverter ("System.Web.UI.Design.DataSourceViewSchemaConverter, " + Consts.AssemblySystem_Design)]
111 public string SelectableField {
112 get { return ViewState.GetString ("SelectableField", String.Empty); }
113 set { ViewState ["SelectableField"] = value; }
117 public string Target {
118 get { return ViewState.GetString ("Target", String.Empty); }
119 set { ViewState ["Target"] = value; }
123 [TypeConverter ("System.Web.UI.Design.DataSourceViewSchemaConverter, " + Consts.AssemblySystem_Design)]
124 public string TargetField {
125 get { return ViewState.GetString ("TargetField", String.Empty); }
126 set { ViewState ["TargetField"] = value; }
131 [WebSysDescription ("The display text of the menu item.")]
133 get { return ViewState.GetString ("Text", String.Empty); }
134 set { ViewState ["Text"] = value; }
138 [TypeConverter ("System.Web.UI.Design.DataSourceViewSchemaConverter, " + Consts.AssemblySystem_Design)]
139 public string TextField {
140 get { return ViewState.GetString ("TextField", String.Empty); }
141 set { ViewState ["TextField"] = value; }
146 public string ToolTip {
147 get { return ViewState.GetString ("ToolTip", String.Empty); }
148 set { ViewState ["ToolTip"] = value; }
152 [TypeConverter ("System.Web.UI.Design.DataSourceViewSchemaConverter, " + Consts.AssemblySystem_Design)]
153 public string ToolTipField {
154 get { return ViewState.GetString ("ToolTipField", String.Empty); }
155 set { ViewState ["ToolTipField"] = value; }
160 public string Value {
161 get { return ViewState.GetString ("Value", String.Empty); }
162 set { ViewState ["Value"] = value; }
166 [TypeConverter ("System.Web.UI.Design.DataSourceViewSchemaConverter, " + Consts.AssemblySystem_Design)]
167 public string ValueField {
168 get { return ViewState.GetString ("ValueField", String.Empty); }
169 set { ViewState ["ValueField"] = value; }
174 [Editor ("System.Web.UI.Design.UrlEditor, " + Consts.AssemblySystem_Design, typeof (System.Drawing.Design.UITypeEditor))]
175 public string PopOutImageUrl {
176 get { return ViewState.GetString ("PopOutImageUrl", String.Empty); }
177 set { ViewState ["PopOutImageUrl"] = value; }
181 [TypeConverter ("System.Web.UI.Design.DataSourceViewSchemaConverter, " + Consts.AssemblySystem_Design)]
182 public string PopOutImageUrlField {
183 get { return ViewState.GetString ("PopOutImageUrlField", String.Empty); }
184 set { ViewState ["PopOutImageUrlField"] = value; }
189 [Editor ("System.Web.UI.Design.UrlEditor, " + Consts.AssemblySystem_Design, typeof (System.Drawing.Design.UITypeEditor))]
190 public string SeparatorImageUrl {
191 get { return ViewState.GetString ("SeparatorImageUrl", String.Empty); }
192 set { ViewState ["SeparatorImageUrl"] = value; }
196 [TypeConverter ("System.Web.UI.Design.DataSourceViewSchemaConverter, " + Consts.AssemblySystem_Design)]
197 public string SeparatorImageUrlField {
198 get { return ViewState.GetString ("SeparatorImageUrlField", String.Empty); }
199 set { ViewState ["SeparatorImageUrlField"] = value; }
201 public override string ToString ()
203 string dm = DataMember;
204 if (String.IsNullOrEmpty (dm))
209 void IStateManager.LoadViewState (object savedState)
211 ViewState.LoadViewState (savedState);
214 object IStateManager.SaveViewState ()
216 return ViewState.SaveViewState();
219 void IStateManager.TrackViewState ()
221 ViewState.TrackViewState ();
224 bool IStateManager.IsTrackingViewState {
225 get { return ViewState.IsTrackingViewState; }
228 [MonoTODO ("Not implemented")]
229 object IDataSourceViewSchemaAccessor.DataSourceViewSchema {
230 get { throw new NotImplementedException (); }
231 set { throw new NotImplementedException (); }
234 object ICloneable.Clone ()
236 MenuItemBinding bin = new MenuItemBinding ();
237 foreach (DictionaryEntry e in ViewState)
238 bin.ViewState [(string)e.Key] = e.Value;
242 internal void SetDirty ()
244 StateBag vs = ViewState;
245 foreach (string key in vs.Keys)
246 vs.SetItemDirty (key, true);