2 // System.Web.UI.WebControls.SettingsBase.cs
5 // Chris Toshok (toshok@ximian.com)
7 // (C) 2005 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.
31 using System.ComponentModel;
33 namespace System.Configuration
36 public abstract class SettingsBase
38 protected SettingsBase ()
42 public void Initialize (SettingsContext context,
43 SettingsPropertyCollection properties,
44 SettingsProviderCollection providers)
46 this.context = context;
47 this.properties = properties;
48 this.providers = providers;
51 public virtual void Save ()
53 throw new NotImplementedException ();
57 public static SettingsBase Synchronized (SettingsBase settingsBase)
59 return new SyncSettingsBase (settingsBase);
62 public virtual SettingsContext Context {
63 get { return context; }
67 public bool IsSynchronized {
71 public virtual object this [ string propertyName ] {
72 get { throw new NotImplementedException (); }
73 set { throw new NotImplementedException (); }
76 public virtual SettingsPropertyCollection Properties {
77 get { return properties; }
80 public virtual SettingsPropertyValueCollection PropertyValues {
82 SettingsPropertyValueCollection col = new SettingsPropertyValueCollection ();
84 foreach (SettingsProperty prop in properties)
86 col.Add (new SettingsPropertyValue (prop));
93 public virtual SettingsProviderCollection Providers {
99 SettingsContext context;
100 SettingsPropertyCollection properties;
101 SettingsProviderCollection providers;
103 private class SyncSettingsBase : SettingsBase
108 public SyncSettingsBase (SettingsBase host)
114 public override void Save ()
121 public override object this [ string propertyName ] {
122 get { return host[propertyName]; }
125 host[propertyName] = value;
130 public override SettingsPropertyCollection Properties {
132 SettingsPropertyCollection props;
135 props = host.Properties;
142 public virtual SettingsPropertyValueCollection PropertyValues {
144 SettingsPropertyValueCollection vals;
147 vals = host.PropertyValues;
154 public virtual SettingsProviderCollection Providers {
156 SettingsProviderCollection prov;
159 prov = host.Providers;