Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / Base / Core / Internal / PropertyEditing / State / CategoryState.cs / 1305376 / CategoryState.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Presentation.Internal.PropertyEditing.State { using System; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Runtime; //// Simple category state object that knows how to remember // two boolean flags: the expansion state of the category itself and the // expansion state of its advanced section. // internal class CategoryState : PersistedState { private const bool DefaultCategoryExpanded = true; private const bool DefaultAdvancedSectionExpanded = true; private string _categoryName; private bool _categoryExpanded = DefaultCategoryExpanded; private bool _advancedSectionExpanded = DefaultAdvancedSectionExpanded; //// Basic ctor // // Name of the contained category [SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily")] public CategoryState(string categoryName) { Fx.Assert(!string.IsNullOrEmpty(categoryName), "Expected a full category name"); _categoryName = categoryName; } //// We key these state objects by the category names // public override object Key { get { return _categoryName; } } //// Returns true if any of the contained values differ from the default // public override bool IsSignificant { get { return _categoryExpanded != DefaultCategoryExpanded || _advancedSectionExpanded != DefaultAdvancedSectionExpanded; } } //// Gets or sets a flag indicating whether this category should be expanded or collapsed // public bool CategoryExpanded { get { return _categoryExpanded; } set { _categoryExpanded = value; } } //// Gets or sets a flag indicating whether this category should have its advanced section // expanded or collapsed // public bool AdvancedSectionExpanded { get { return _advancedSectionExpanded; } set { _advancedSectionExpanded = value; } } //// Serializes this object into a simple string (AppDomains like strings). // // Format: CategoryName,CategoryExpanded,AdvancedExpanded;NextCategoryName,CategoryExpanded,AdvancedExpanded;... // Where bools are recorded as 0 = false and 1 = true and ';' and ',' are escaped // //Serialized version of this state object (may be null) protected override string SerializeCore() { return string.Concat( PersistedStateUtilities.Escape(_categoryName), ',', PersistedStateUtilities.BoolToDigit(_categoryExpanded), ',', PersistedStateUtilities.BoolToDigit(_advancedSectionExpanded)); } //// Attempts to deserialize a string into a CategoryState object // // String to deserialize //Instance of CategoryState if the serialized string was valid, null otherwise. public static CategoryState Deserialize(string categoryStateString) { string[] args = categoryStateString.Split(','); if (args == null || args.Length != 3) { return null; } bool? categoryExpanded = PersistedStateUtilities.DigitToBool(args[1]); bool? advancedSectionExpanded = PersistedStateUtilities.DigitToBool(args[2]); if (categoryExpanded == null || advancedSectionExpanded == null) { return null; } string categoryName = PersistedStateUtilities.Unescape(args[0]); if (string.IsNullOrEmpty(categoryName)) { return null; } CategoryState categoryState = new CategoryState(categoryName); categoryState.CategoryExpanded = (bool)categoryExpanded; categoryState.AdvancedSectionExpanded = (bool)advancedSectionExpanded; return categoryState; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Presentation.Internal.PropertyEditing.State { using System; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Runtime; //// Simple category state object that knows how to remember // two boolean flags: the expansion state of the category itself and the // expansion state of its advanced section. // internal class CategoryState : PersistedState { private const bool DefaultCategoryExpanded = true; private const bool DefaultAdvancedSectionExpanded = true; private string _categoryName; private bool _categoryExpanded = DefaultCategoryExpanded; private bool _advancedSectionExpanded = DefaultAdvancedSectionExpanded; //// Basic ctor // // Name of the contained category [SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily")] public CategoryState(string categoryName) { Fx.Assert(!string.IsNullOrEmpty(categoryName), "Expected a full category name"); _categoryName = categoryName; } //// We key these state objects by the category names // public override object Key { get { return _categoryName; } } //// Returns true if any of the contained values differ from the default // public override bool IsSignificant { get { return _categoryExpanded != DefaultCategoryExpanded || _advancedSectionExpanded != DefaultAdvancedSectionExpanded; } } //// Gets or sets a flag indicating whether this category should be expanded or collapsed // public bool CategoryExpanded { get { return _categoryExpanded; } set { _categoryExpanded = value; } } //// Gets or sets a flag indicating whether this category should have its advanced section // expanded or collapsed // public bool AdvancedSectionExpanded { get { return _advancedSectionExpanded; } set { _advancedSectionExpanded = value; } } //// Serializes this object into a simple string (AppDomains like strings). // // Format: CategoryName,CategoryExpanded,AdvancedExpanded;NextCategoryName,CategoryExpanded,AdvancedExpanded;... // Where bools are recorded as 0 = false and 1 = true and ';' and ',' are escaped // //Serialized version of this state object (may be null) protected override string SerializeCore() { return string.Concat( PersistedStateUtilities.Escape(_categoryName), ',', PersistedStateUtilities.BoolToDigit(_categoryExpanded), ',', PersistedStateUtilities.BoolToDigit(_advancedSectionExpanded)); } //// Attempts to deserialize a string into a CategoryState object // // String to deserialize //Instance of CategoryState if the serialized string was valid, null otherwise. public static CategoryState Deserialize(string categoryStateString) { string[] args = categoryStateString.Split(','); if (args == null || args.Length != 3) { return null; } bool? categoryExpanded = PersistedStateUtilities.DigitToBool(args[1]); bool? advancedSectionExpanded = PersistedStateUtilities.DigitToBool(args[2]); if (categoryExpanded == null || advancedSectionExpanded == null) { return null; } string categoryName = PersistedStateUtilities.Unescape(args[0]); if (string.IsNullOrEmpty(categoryName)) { return null; } CategoryState categoryState = new CategoryState(categoryName); categoryState.CategoryExpanded = (bool)categoryExpanded; categoryState.AdvancedSectionExpanded = (bool)advancedSectionExpanded; return categoryState; } } } // 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
- MessageBox.cs
- XmlDataSourceView.cs
- ZoneIdentityPermission.cs
- InternalPolicyElement.cs
- ParameterModifier.cs
- StagingAreaInputItem.cs
- VirtualPath.cs
- TextTreeTextBlock.cs
- HeaderUtility.cs
- SystemUnicastIPAddressInformation.cs
- BaseCAMarshaler.cs
- ControlTemplate.cs
- ServiceObjectContainer.cs
- StrokeFIndices.cs
- DatatypeImplementation.cs
- VarInfo.cs
- XNodeValidator.cs
- ControlSerializer.cs
- CryptoHelper.cs
- DbConnectionHelper.cs
- ListViewUpdatedEventArgs.cs
- ReachDocumentPageSerializer.cs
- ContentWrapperAttribute.cs
- SqlDeflator.cs
- RootDesignerSerializerAttribute.cs
- ServiceTimeoutsElement.cs
- ChannelServices.cs
- ListViewItemSelectionChangedEvent.cs
- RestHandlerFactory.cs
- GeometryHitTestParameters.cs
- EpmContentDeSerializerBase.cs
- SerializerProvider.cs
- GridViewColumnCollection.cs
- XPathDocumentIterator.cs
- BindingWorker.cs
- AsyncStreamReader.cs
- mediaclock.cs
- Helpers.cs
- TimeSpan.cs
- odbcmetadatacolumnnames.cs
- MediaElementAutomationPeer.cs
- OletxResourceManager.cs
- Metafile.cs
- DataGridViewRowsRemovedEventArgs.cs
- SessionKeyExpiredException.cs
- TextAdaptor.cs
- SqlExpander.cs
- CapiNative.cs
- TextBox.cs
- DrawListViewSubItemEventArgs.cs
- MasterPageParser.cs
- FontUnitConverter.cs
- StaticExtensionConverter.cs
- DataPagerFieldItem.cs
- DataTableMappingCollection.cs
- PathFigureCollectionConverter.cs
- BufferModesCollection.cs
- OleDbRowUpdatedEvent.cs
- CompleteWizardStep.cs
- PrintDialogException.cs
- HttpResponseInternalWrapper.cs
- PassportAuthenticationModule.cs
- BitmapDecoder.cs
- WeakReferenceKey.cs
- LinqTreeNodeEvaluator.cs
- PerformanceCountersElement.cs
- ReadWriteObjectLock.cs
- PropertyBuilder.cs
- ServiceOperationParameter.cs
- UriPrefixTable.cs
- TreeView.cs
- ExpressionReplacer.cs
- TemplatedWizardStep.cs
- SubclassTypeValidatorAttribute.cs
- OptionalColumn.cs
- SchemaTableOptionalColumn.cs
- BamlReader.cs
- ping.cs
- PositiveTimeSpanValidator.cs
- ListenerSingletonConnectionReader.cs
- CompiledQueryCacheEntry.cs
- PrtTicket_Editor.cs
- DataColumnMapping.cs
- QueryStringParameter.cs
- Geometry.cs
- HttpAsyncResult.cs
- SafeFileMapViewHandle.cs
- SecurityContextKeyIdentifierClause.cs
- ArcSegment.cs
- PeerCollaborationPermission.cs
- XmlAutoDetectWriter.cs
- ComplexBindingPropertiesAttribute.cs
- XmlSerializationReader.cs
- METAHEADER.cs
- ListViewInsertionMark.cs
- DropDownList.cs
- HMAC.cs
- ImageUrlEditor.cs
- TimersDescriptionAttribute.cs
- FrameworkElementAutomationPeer.cs