Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / ObjectPersistData.cs / 1305376 / ObjectPersistData.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI { using System.Collections; using System.Collections.Specialized; using System.Web.Util; using System.Security.Permissions; public class ObjectPersistData { private Type _objectType; private bool _isCollection; private ArrayList _collectionItems; private bool _localize; private string _resourceKey; private IDictionary _propertyTableByFilter; private IDictionary _propertyTableByProperty; private ArrayList _allPropertyEntries; private ArrayList _eventEntries; private IDictionary _builtObjects; public ObjectPersistData(ControlBuilder builder, IDictionary builtObjects) { _objectType = builder.ControlType; _localize = builder.Localize; _resourceKey = builder.GetResourceKey(); _builtObjects = builtObjects; if (typeof(ICollection).IsAssignableFrom(_objectType)) { _isCollection = true; } _collectionItems = new ArrayList(); _propertyTableByFilter = new HybridDictionary(true); _propertyTableByProperty = new HybridDictionary(true); _allPropertyEntries = new ArrayList(); _eventEntries = new ArrayList(); foreach (PropertyEntry entry in builder.SimplePropertyEntries) { AddPropertyEntry(entry); } foreach (PropertyEntry entry in builder.ComplexPropertyEntries) { AddPropertyEntry(entry); } foreach (PropertyEntry entry in builder.TemplatePropertyEntries) { AddPropertyEntry(entry); } foreach (PropertyEntry entry in builder.BoundPropertyEntries) { AddPropertyEntry(entry); } foreach (EventEntry entry in builder.EventEntries) { AddEventEntry(entry); } } ////// Get all property entries /// public ICollection AllPropertyEntries { get { return _allPropertyEntries; } } public IDictionary BuiltObjects { get { return _builtObjects; } } public ICollection CollectionItems { get { return _collectionItems; } } public ICollection EventEntries { get { return _eventEntries; } } ////// True if this persistence data is for a collection /// public bool IsCollection { get { return _isCollection; } } public bool Localize { get { return _localize; } } ////// The type of the object with these properties. /// public Type ObjectType { get { return _objectType; } } public string ResourceKey { get { return _resourceKey; } } ////// Adds a property to this persistence data, adding it to all necessary /// data structures. /// private void AddPropertyEntry(PropertyEntry entry) { if (_isCollection && (entry is ComplexPropertyEntry && ((ComplexPropertyEntry)entry).IsCollectionItem)) { _collectionItems.Add(entry); } else { IDictionary filteredProperties = (IDictionary)_propertyTableByFilter[entry.Filter]; if (filteredProperties == null) { filteredProperties = new HybridDictionary(true); _propertyTableByFilter[entry.Filter] = filteredProperties; } Debug.Assert((entry.Name != null) && (entry.Name.Length > 0)); filteredProperties[entry.Name] = entry; ArrayList properties = (ArrayList)_propertyTableByProperty[entry.Name]; if (properties == null) { properties = new ArrayList(); _propertyTableByProperty[entry.Name] = properties; } properties.Add(entry); } _allPropertyEntries.Add(entry); } private void AddEventEntry(EventEntry entry) { _eventEntries.Add(entry); } ////// public void AddToObjectControlBuilderTable(IDictionary table) { if (_builtObjects != null) { foreach (DictionaryEntry entry in _builtObjects) { table[entry.Key] = entry.Value; } } } /// /// Gets a PropertyEntry for the specified filter and property name /// public PropertyEntry GetFilteredProperty(string filter, string name) { IDictionary filteredProperties = GetFilteredProperties(filter); if (filteredProperties != null) { return (PropertyEntry)filteredProperties[name]; } return null; } ////// Gets all PropertyEntries for the specified filter /// public IDictionary GetFilteredProperties(string filter) { return (IDictionary)_propertyTableByFilter[filter]; } ////// Gets all filtered PropertiesEntries for a specified property (name uses dot-syntax e.g. Font.Bold) /// public ICollection GetPropertyAllFilters(string name) { ICollection properties = (ICollection)_propertyTableByProperty[name]; if (properties == null) { return new ArrayList(); } return properties; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI { using System.Collections; using System.Collections.Specialized; using System.Web.Util; using System.Security.Permissions; public class ObjectPersistData { private Type _objectType; private bool _isCollection; private ArrayList _collectionItems; private bool _localize; private string _resourceKey; private IDictionary _propertyTableByFilter; private IDictionary _propertyTableByProperty; private ArrayList _allPropertyEntries; private ArrayList _eventEntries; private IDictionary _builtObjects; public ObjectPersistData(ControlBuilder builder, IDictionary builtObjects) { _objectType = builder.ControlType; _localize = builder.Localize; _resourceKey = builder.GetResourceKey(); _builtObjects = builtObjects; if (typeof(ICollection).IsAssignableFrom(_objectType)) { _isCollection = true; } _collectionItems = new ArrayList(); _propertyTableByFilter = new HybridDictionary(true); _propertyTableByProperty = new HybridDictionary(true); _allPropertyEntries = new ArrayList(); _eventEntries = new ArrayList(); foreach (PropertyEntry entry in builder.SimplePropertyEntries) { AddPropertyEntry(entry); } foreach (PropertyEntry entry in builder.ComplexPropertyEntries) { AddPropertyEntry(entry); } foreach (PropertyEntry entry in builder.TemplatePropertyEntries) { AddPropertyEntry(entry); } foreach (PropertyEntry entry in builder.BoundPropertyEntries) { AddPropertyEntry(entry); } foreach (EventEntry entry in builder.EventEntries) { AddEventEntry(entry); } } ////// Get all property entries /// public ICollection AllPropertyEntries { get { return _allPropertyEntries; } } public IDictionary BuiltObjects { get { return _builtObjects; } } public ICollection CollectionItems { get { return _collectionItems; } } public ICollection EventEntries { get { return _eventEntries; } } ////// True if this persistence data is for a collection /// public bool IsCollection { get { return _isCollection; } } public bool Localize { get { return _localize; } } ////// The type of the object with these properties. /// public Type ObjectType { get { return _objectType; } } public string ResourceKey { get { return _resourceKey; } } ////// Adds a property to this persistence data, adding it to all necessary /// data structures. /// private void AddPropertyEntry(PropertyEntry entry) { if (_isCollection && (entry is ComplexPropertyEntry && ((ComplexPropertyEntry)entry).IsCollectionItem)) { _collectionItems.Add(entry); } else { IDictionary filteredProperties = (IDictionary)_propertyTableByFilter[entry.Filter]; if (filteredProperties == null) { filteredProperties = new HybridDictionary(true); _propertyTableByFilter[entry.Filter] = filteredProperties; } Debug.Assert((entry.Name != null) && (entry.Name.Length > 0)); filteredProperties[entry.Name] = entry; ArrayList properties = (ArrayList)_propertyTableByProperty[entry.Name]; if (properties == null) { properties = new ArrayList(); _propertyTableByProperty[entry.Name] = properties; } properties.Add(entry); } _allPropertyEntries.Add(entry); } private void AddEventEntry(EventEntry entry) { _eventEntries.Add(entry); } ////// public void AddToObjectControlBuilderTable(IDictionary table) { if (_builtObjects != null) { foreach (DictionaryEntry entry in _builtObjects) { table[entry.Key] = entry.Value; } } } /// /// Gets a PropertyEntry for the specified filter and property name /// public PropertyEntry GetFilteredProperty(string filter, string name) { IDictionary filteredProperties = GetFilteredProperties(filter); if (filteredProperties != null) { return (PropertyEntry)filteredProperties[name]; } return null; } ////// Gets all PropertyEntries for the specified filter /// public IDictionary GetFilteredProperties(string filter) { return (IDictionary)_propertyTableByFilter[filter]; } ////// Gets all filtered PropertiesEntries for a specified property (name uses dot-syntax e.g. Font.Bold) /// public ICollection GetPropertyAllFilters(string name) { ICollection properties = (ICollection)_propertyTableByProperty[name]; if (properties == null) { return new ArrayList(); } return properties; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SessionPageStateSection.cs
- ClearTypeHintValidation.cs
- PartialCachingControl.cs
- FontFaceLayoutInfo.cs
- OpCodes.cs
- FixedFlowMap.cs
- PersonalizationStateInfoCollection.cs
- BamlRecordHelper.cs
- ControlCollection.cs
- WebPartConnectionsConfigureVerb.cs
- ExpressionReplacer.cs
- Action.cs
- AnonymousIdentificationSection.cs
- StrokeFIndices.cs
- DSASignatureFormatter.cs
- GeometryCollection.cs
- ButtonChrome.cs
- GraphicsContainer.cs
- XPathNavigatorKeyComparer.cs
- ListView.cs
- Script.cs
- InfoCardSymmetricCrypto.cs
- DoubleUtil.cs
- DropDownButton.cs
- OleStrCAMarshaler.cs
- BaseTypeViewSchema.cs
- SafeLibraryHandle.cs
- sqlser.cs
- XXXInfos.cs
- IssuanceLicense.cs
- GridView.cs
- DataControlField.cs
- xmlsaver.cs
- ParentUndoUnit.cs
- cookiecollection.cs
- UnsafeNativeMethods.cs
- Mouse.cs
- PathFigureCollection.cs
- LinqDataSourceView.cs
- Permission.cs
- CustomWebEventKey.cs
- ContractCodeDomInfo.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- IncomingWebRequestContext.cs
- ObjectListCommandEventArgs.cs
- SiteMapDataSourceView.cs
- ResXResourceReader.cs
- DataContractFormatAttribute.cs
- DecodeHelper.cs
- BitSet.cs
- ElementsClipboardData.cs
- FileCodeGroup.cs
- InputChannelBinder.cs
- FilteredAttributeCollection.cs
- LicenseProviderAttribute.cs
- EditCommandColumn.cs
- DataGridCommandEventArgs.cs
- EventLogEntry.cs
- ZipIOLocalFileBlock.cs
- XPathQilFactory.cs
- BuildProviderCollection.cs
- SqlDataSourceConfigureSelectPanel.cs
- FormsAuthenticationModule.cs
- QueryComponents.cs
- ContextToken.cs
- HebrewCalendar.cs
- CompModSwitches.cs
- PageWrapper.cs
- ChannelTokenTypeConverter.cs
- Enlistment.cs
- PrintDialog.cs
- Choices.cs
- GridViewPageEventArgs.cs
- RuntimeResourceSet.cs
- KeyedCollection.cs
- BlockCollection.cs
- EncryptedType.cs
- XamlVector3DCollectionSerializer.cs
- TabRenderer.cs
- ListManagerBindingsCollection.cs
- ApplicationManager.cs
- WindowsToolbar.cs
- Semaphore.cs
- SignatureResourcePool.cs
- _ProxyChain.cs
- HtmlControlDesigner.cs
- DateRangeEvent.cs
- FontNamesConverter.cs
- GeometryCombineModeValidation.cs
- ScriptServiceAttribute.cs
- TailPinnedEventArgs.cs
- DateTimeOffsetAdapter.cs
- MsmqTransportBindingElement.cs
- MailAddressCollection.cs
- _FtpControlStream.cs
- TablePattern.cs
- EventSinkHelperWriter.cs
- GenericAuthenticationEventArgs.cs
- CacheVirtualItemsEvent.cs
- FontFamily.cs