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
- BStrWrapper.cs
- FunctionNode.cs
- PinnedBufferMemoryStream.cs
- FormViewUpdateEventArgs.cs
- Effect.cs
- Msec.cs
- OrderPreservingPipeliningSpoolingTask.cs
- OleDbDataAdapter.cs
- ZoneMembershipCondition.cs
- DesignerVerbCollection.cs
- Resources.Designer.cs
- AppSettingsSection.cs
- FileInfo.cs
- ResourceDescriptionAttribute.cs
- ReadingWritingEntityEventArgs.cs
- InternalBase.cs
- EdmProviderManifest.cs
- TagElement.cs
- ExtensionSurface.cs
- DbConnectionFactory.cs
- TemplateModeChangedEventArgs.cs
- DataServiceResponse.cs
- XmlReflectionImporter.cs
- HTMLTextWriter.cs
- Funcletizer.cs
- IERequestCache.cs
- ParseHttpDate.cs
- EdmToObjectNamespaceMap.cs
- Boolean.cs
- SiteMapNode.cs
- ProjectionCamera.cs
- DoubleUtil.cs
- LineBreak.cs
- BehaviorEditorPart.cs
- StylusPointProperty.cs
- MDIWindowDialog.cs
- ButtonChrome.cs
- ISessionStateStore.cs
- TypeContext.cs
- WindowShowOrOpenTracker.cs
- DragEvent.cs
- TaskFormBase.cs
- BaseProcessor.cs
- SiteMapProvider.cs
- Attributes.cs
- EndCreateSecurityTokenRequest.cs
- CriticalFinalizerObject.cs
- NegotiateStream.cs
- ImportRequest.cs
- RuntimeConfigLKG.cs
- RegexTypeEditor.cs
- Security.cs
- Regex.cs
- DataTableMappingCollection.cs
- DataAdapter.cs
- BooleanAnimationBase.cs
- CodeVariableReferenceExpression.cs
- ResolvedKeyFrameEntry.cs
- TextMarkerSource.cs
- Rijndael.cs
- IsolationInterop.cs
- Window.cs
- DebuggerAttributes.cs
- HtmlWindowCollection.cs
- EventLogPermissionAttribute.cs
- RegexBoyerMoore.cs
- DependencyPropertyKind.cs
- RefType.cs
- FormsAuthenticationModule.cs
- ExpressionNormalizer.cs
- DataGridViewCellEventArgs.cs
- StrokeCollectionDefaultValueFactory.cs
- PropertyTabAttribute.cs
- DetailsViewRowCollection.cs
- TrustLevel.cs
- Int16Storage.cs
- DataGridTextBox.cs
- HandleTable.cs
- DataSpaceManager.cs
- ComplexTypeEmitter.cs
- Publisher.cs
- AppearanceEditorPart.cs
- RecordConverter.cs
- ListViewItem.cs
- ListBox.cs
- HttpHeaderCollection.cs
- basenumberconverter.cs
- OdbcConnectionOpen.cs
- EventLogPermissionEntry.cs
- UTF32Encoding.cs
- TextTreeNode.cs
- _SSPIWrapper.cs
- CopyAction.cs
- WebPartCloseVerb.cs
- WinEventQueueItem.cs
- ConsoleTraceListener.cs
- BindingNavigator.cs
- HyperlinkAutomationPeer.cs
- LoaderAllocator.cs
- util.cs