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 / PropertyState.cs / 1305376 / PropertyState.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 state object that knows how to remember state for a single property. // The only thing it currently remembers is whether the property's sub-properties // are expanded or collapsed. // internal class PropertyState : PersistedState { private const bool DefaultSubPropertiesExpanded = false; private string _propertyName; private bool _subPropertiesExpanded = DefaultSubPropertiesExpanded; //// Basic ctor // // Property to wrap around [SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily")] public PropertyState(string propertyName) { Fx.Assert(!string.IsNullOrEmpty(propertyName), "Expected a full property name"); _propertyName = propertyName; } //// We key these state objects by their property names // public override object Key { get { return _propertyName; } } //// Returns true if any of the contained values differ from the default // public override bool IsSignificant { get { return _subPropertiesExpanded != DefaultSubPropertiesExpanded; } } //// Gets or sets a flag indicating whether the sub-properties of the contained // property have been expanded or collapsed. // public bool SubPropertiesExpanded { get { return _subPropertiesExpanded; } set { _subPropertiesExpanded = value; } } //// Serializes this object into a simple string (AppDomains like strings). // // Format: PropertyName,SubPropertiesExpanded;NextPropertyName,SubPropertiesExpanded;... // Where bools are recorded as 0 = false and 1 = true // //Serialized version of this state object (may be null) protected override string SerializeCore() { return string.Concat( PersistedStateUtilities.Escape(_propertyName), ',', PersistedStateUtilities.BoolToDigit(_subPropertiesExpanded)); } //// Attempts to deserialize a string into a PropertyState object // // String to deserialize //Instance of PropertyState if the serialized string was valid, null otherwise. public static PropertyState Deserialize(string propertyStateString) { string[] args = propertyStateString.Split(','); if (args == null || args.Length != 2) { return null; } bool? subPropertiesExpanded = PersistedStateUtilities.DigitToBool(args[1]); if (subPropertiesExpanded == null) { return null; } string propertyName = PersistedStateUtilities.Unescape(args[0]); if (string.IsNullOrEmpty(propertyName)) { return null; } PropertyState propertyState = new PropertyState(propertyName); propertyState.SubPropertiesExpanded = (bool)subPropertiesExpanded; return propertyState; } } } // 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 state object that knows how to remember state for a single property. // The only thing it currently remembers is whether the property's sub-properties // are expanded or collapsed. // internal class PropertyState : PersistedState { private const bool DefaultSubPropertiesExpanded = false; private string _propertyName; private bool _subPropertiesExpanded = DefaultSubPropertiesExpanded; //// Basic ctor // // Property to wrap around [SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily")] public PropertyState(string propertyName) { Fx.Assert(!string.IsNullOrEmpty(propertyName), "Expected a full property name"); _propertyName = propertyName; } //// We key these state objects by their property names // public override object Key { get { return _propertyName; } } //// Returns true if any of the contained values differ from the default // public override bool IsSignificant { get { return _subPropertiesExpanded != DefaultSubPropertiesExpanded; } } //// Gets or sets a flag indicating whether the sub-properties of the contained // property have been expanded or collapsed. // public bool SubPropertiesExpanded { get { return _subPropertiesExpanded; } set { _subPropertiesExpanded = value; } } //// Serializes this object into a simple string (AppDomains like strings). // // Format: PropertyName,SubPropertiesExpanded;NextPropertyName,SubPropertiesExpanded;... // Where bools are recorded as 0 = false and 1 = true // //Serialized version of this state object (may be null) protected override string SerializeCore() { return string.Concat( PersistedStateUtilities.Escape(_propertyName), ',', PersistedStateUtilities.BoolToDigit(_subPropertiesExpanded)); } //// Attempts to deserialize a string into a PropertyState object // // String to deserialize //Instance of PropertyState if the serialized string was valid, null otherwise. public static PropertyState Deserialize(string propertyStateString) { string[] args = propertyStateString.Split(','); if (args == null || args.Length != 2) { return null; } bool? subPropertiesExpanded = PersistedStateUtilities.DigitToBool(args[1]); if (subPropertiesExpanded == null) { return null; } string propertyName = PersistedStateUtilities.Unescape(args[0]); if (string.IsNullOrEmpty(propertyName)) { return null; } PropertyState propertyState = new PropertyState(propertyName); propertyState.SubPropertiesExpanded = (bool)subPropertiesExpanded; return propertyState; } } } // 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
- DesignerWebPartChrome.cs
- MulticastOption.cs
- ObjectToIdCache.cs
- SerializationInfoEnumerator.cs
- AspNetHostingPermission.cs
- XmlAggregates.cs
- ErrorsHelper.cs
- HtmlForm.cs
- SimpleHandlerFactory.cs
- Emitter.cs
- RenderingBiasValidation.cs
- AnnouncementService.cs
- SystemIcmpV6Statistics.cs
- DataControlFieldCollection.cs
- Serializer.cs
- SerialPinChanges.cs
- GridViewRowEventArgs.cs
- XmlILStorageConverter.cs
- CodeDelegateInvokeExpression.cs
- StaticContext.cs
- ErrorFormatterPage.cs
- SHA1.cs
- EnterpriseServicesHelper.cs
- XPathDocumentNavigator.cs
- HopperCache.cs
- RemotingConfiguration.cs
- HtmlSelectionListAdapter.cs
- EdgeModeValidation.cs
- DbParameterCollectionHelper.cs
- OutputCacheSection.cs
- BulletDecorator.cs
- MSAANativeProvider.cs
- Command.cs
- SafeNativeMethods.cs
- OpenFileDialog.cs
- XmlBoundElement.cs
- ExpressionNode.cs
- DataGridViewColumnConverter.cs
- SectionRecord.cs
- ConfigurationStrings.cs
- BitmapMetadataBlob.cs
- DtdParser.cs
- AssemblyFilter.cs
- HandledEventArgs.cs
- RadioButtonBaseAdapter.cs
- PackWebRequest.cs
- ModelItemDictionaryImpl.cs
- mactripleDES.cs
- OleDbRowUpdatingEvent.cs
- FloatUtil.cs
- SoapFaultCodes.cs
- TemplatedMailWebEventProvider.cs
- PolyLineSegment.cs
- LinkLabelLinkClickedEvent.cs
- DesignerActionHeaderItem.cs
- FilterInvalidBodyAccessException.cs
- Effect.cs
- DesignerToolStripControlHost.cs
- HighContrastHelper.cs
- WizardStepBase.cs
- QueryableFilterRepeater.cs
- Subtract.cs
- Point3DKeyFrameCollection.cs
- DynamicMethod.cs
- WebPartCollection.cs
- controlskin.cs
- CodeGroup.cs
- UIElement.cs
- DataControlPagerLinkButton.cs
- DelayedRegex.cs
- SqlDependencyListener.cs
- Unit.cs
- DeadCharTextComposition.cs
- SupportingTokenAuthenticatorSpecification.cs
- Command.cs
- ApplicationServicesHostFactory.cs
- ContentFilePart.cs
- MimeMapping.cs
- RightsDocument.cs
- DefaultWorkflowSchedulerService.cs
- ContentOperations.cs
- XmlElementList.cs
- InheritanceUI.cs
- CompoundFileStreamReference.cs
- SupportingTokenAuthenticatorSpecification.cs
- NonClientArea.cs
- SqlDataReader.cs
- BitConverter.cs
- AspNetHostingPermission.cs
- MetadataFile.cs
- GeneralTransform3DTo2D.cs
- ObjectListFieldsPage.cs
- bidPrivateBase.cs
- DataSourceListEditor.cs
- ConvertEvent.cs
- DebugView.cs
- AutoGeneratedFieldProperties.cs
- ObjectViewEntityCollectionData.cs
- SafeProcessHandle.cs
- XmlEntityReference.cs