Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / ObjectPersistData.cs / 1 / 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; [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] 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; } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataGridCellEditEndingEventArgs.cs
- BuilderElements.cs
- ToolStripRenderEventArgs.cs
- StrokeNode.cs
- ButtonFlatAdapter.cs
- BuildManager.cs
- CheckBoxRenderer.cs
- Mutex.cs
- Int16.cs
- DataTablePropertyDescriptor.cs
- XsdBuildProvider.cs
- EventMappingSettings.cs
- PropertyEntry.cs
- CommentGlyph.cs
- QueryOpcode.cs
- ByteStorage.cs
- embossbitmapeffect.cs
- RelationalExpressions.cs
- RemotingService.cs
- TextBlock.cs
- XamlToRtfWriter.cs
- ProcessModule.cs
- ByteKeyFrameCollection.cs
- ProfileParameter.cs
- DispatcherOperation.cs
- DataGridViewCellMouseEventArgs.cs
- ControlPropertyNameConverter.cs
- CodeBlockBuilder.cs
- PeerName.cs
- DrawListViewColumnHeaderEventArgs.cs
- ClipboardProcessor.cs
- ToolStripLocationCancelEventArgs.cs
- QueryableDataSourceHelper.cs
- XamlReaderHelper.cs
- SqlConnectionPoolProviderInfo.cs
- Context.cs
- SafeProcessHandle.cs
- NotCondition.cs
- URLBuilder.cs
- SafeRightsManagementSessionHandle.cs
- SQLSingleStorage.cs
- TypeUtil.cs
- __Filters.cs
- MatrixTransform.cs
- FontUnit.cs
- TextLineBreak.cs
- DataAdapter.cs
- MailMessageEventArgs.cs
- EntityKey.cs
- XmlWrappingWriter.cs
- LockedHandleGlyph.cs
- Monitor.cs
- Geometry3D.cs
- OleAutBinder.cs
- GenericEnumConverter.cs
- RedistVersionInfo.cs
- DataGridViewSortCompareEventArgs.cs
- CompositeControl.cs
- KnownTypesProvider.cs
- FileDialogCustomPlacesCollection.cs
- Input.cs
- HWStack.cs
- Point3DCollectionConverter.cs
- WebPartDeleteVerb.cs
- Pens.cs
- NavigatorInvalidBodyAccessException.cs
- _NetRes.cs
- AbsoluteQuery.cs
- LoginCancelEventArgs.cs
- ExpressionBindingsDialog.cs
- ListBox.cs
- TextUtf8RawTextWriter.cs
- Schema.cs
- WebFormDesignerActionService.cs
- MenuBindingsEditorForm.cs
- DocumentReference.cs
- InputProcessorProfiles.cs
- NameValueSectionHandler.cs
- ZipIOLocalFileBlock.cs
- ElasticEase.cs
- TextRangeAdaptor.cs
- VirtualDirectoryMapping.cs
- GlyphsSerializer.cs
- WebBrowserEvent.cs
- ListView.cs
- StdValidatorsAndConverters.cs
- WebPartExportVerb.cs
- DeploymentSectionCache.cs
- DataGridAddNewRow.cs
- SectionInformation.cs
- UpdatePanelTriggerCollection.cs
- CancellationToken.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- Int32CollectionValueSerializer.cs
- SamlDelegatingWriter.cs
- ProjectionPlanCompiler.cs
- TransactionTable.cs
- PostBackTrigger.cs
- DefaultValidator.cs
- GridItemCollection.cs