Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / Model / EditingScope.cs / 1305376 / EditingScope.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Presentation.Model { using System; using System.Collections.Generic; using System.Text; using System.Runtime; [Fx.Tag.XamlVisible(false)] public class EditingScope : ModelEditingScope { ModelTreeManager modelTreeManager; EditingScope outerScope; Listchanges; List appliedChanges; bool suppressUndo; internal EditingScope(ModelTreeManager modelTreeManager, EditingScope outerScope) { this.modelTreeManager = modelTreeManager; this.changes = new List (); this.outerScope = outerScope; this.HasModelChanges = false; } private EditingScope() { } public bool HasEffectiveChanges { get { return this.appliedChanges != null && this.appliedChanges.Count > 0; } } internal bool HasModelChanges { get; private set; } internal bool SuppressUndo { get { return this.suppressUndo; } set { Fx.Assert(!value || this.outerScope == null, "If we are suppressing undo, then we are not nested within another editingScope, otherwise suppress undo won't work."); this.suppressUndo = value; } } public List Changes { get { return changes; } } protected override void OnComplete() { if (this.outerScope == null) { appliedChanges = new List (); int startIndex = 0; // pump all changes, applying changes can add more changes to the end of the change list. while (startIndex < this.Changes.Count) { // pickup the new changes List changesToApply = this.Changes.GetRange(startIndex, this.Changes.Count - startIndex); startIndex = this.Changes.Count; foreach (Change change in changesToApply) { if (change != null && change.Apply()) { appliedChanges.Add(change); } if (change is ModelChange) { this.HasModelChanges = true; } } } } else { outerScope.Changes.AddRange(this.Changes); } this.modelTreeManager.OnEditingScopeCompleted(this); } protected override bool CanComplete() { return this.modelTreeManager.CanEditingScopeComplete(this); } protected override void OnRevert(bool finalizing) { if (this.appliedChanges != null) { List revertChanges = new List (); foreach (Change change in this.appliedChanges) { revertChanges.Add(change.GetInverse()); } revertChanges.Reverse(); foreach (Change change in revertChanges) { change.Apply(); this.appliedChanges.RemoveAt(this.appliedChanges.Count - 1); } } this.modelTreeManager.OnEditingScopeReverted(this); } protected override bool OnException(Exception e) { return false; } } } // 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
- RotateTransform3D.cs
- AdapterDictionary.cs
- MimeMapping.cs
- Error.cs
- DescendantBaseQuery.cs
- GridViewActionList.cs
- MultiPropertyDescriptorGridEntry.cs
- SharedDp.cs
- Pts.cs
- CodeTypeParameterCollection.cs
- AttributeData.cs
- ListViewHitTestInfo.cs
- IListConverters.cs
- Metadata.cs
- BufferedWebEventProvider.cs
- GatewayDefinition.cs
- BlobPersonalizationState.cs
- XmlTypeAttribute.cs
- GroupJoinQueryOperator.cs
- InputLanguageEventArgs.cs
- ConfigXmlElement.cs
- AssemblyResourceLoader.cs
- WebAdminConfigurationHelper.cs
- SqlUtils.cs
- CustomError.cs
- DataKeyCollection.cs
- DynamicMethod.cs
- HttpListenerResponse.cs
- PaperSource.cs
- _AutoWebProxyScriptHelper.cs
- FontDriver.cs
- CqlGenerator.cs
- ActivityCodeDomSerializer.cs
- BitmapEffectInputConnector.cs
- PngBitmapDecoder.cs
- TableMethodGenerator.cs
- MapPathBasedVirtualPathProvider.cs
- CompileLiteralTextParser.cs
- UserPreferenceChangingEventArgs.cs
- ArglessEventHandlerProxy.cs
- COM2PropertyPageUITypeConverter.cs
- FactoryGenerator.cs
- Model3D.cs
- BuilderElements.cs
- ResXResourceWriter.cs
- PenCursorManager.cs
- FixedBufferAttribute.cs
- AttachedPropertyInfo.cs
- _ShellExpression.cs
- BaseValidator.cs
- CopyCodeAction.cs
- ObjectComplexPropertyMapping.cs
- FieldToken.cs
- BmpBitmapDecoder.cs
- StandardOleMarshalObject.cs
- AnnouncementInnerClient11.cs
- WriteFileContext.cs
- SecureEnvironment.cs
- AnimationException.cs
- ZipIOLocalFileDataDescriptor.cs
- SizeAnimationUsingKeyFrames.cs
- SynchronizedInputAdaptor.cs
- _UriSyntax.cs
- ForceCopyBuildProvider.cs
- SqlBulkCopyColumnMapping.cs
- FontFamily.cs
- ConfigurationFileMap.cs
- ArgumentOutOfRangeException.cs
- ConnectionStringsSection.cs
- XomlCompilerHelpers.cs
- PropertyGridEditorPart.cs
- HitTestParameters.cs
- WebPartActionVerb.cs
- EditorZoneBase.cs
- SchemaTableOptionalColumn.cs
- ColumnHeaderConverter.cs
- ComponentGlyph.cs
- SafeMILHandle.cs
- Baml6Assembly.cs
- TreeNodeStyle.cs
- WindowHelperService.cs
- DataStreams.cs
- PathFigureCollection.cs
- BreakRecordTable.cs
- UnhandledExceptionEventArgs.cs
- DebugView.cs
- DbParameterCollectionHelper.cs
- MetaModel.cs
- DbConnectionStringCommon.cs
- SystemIPInterfaceStatistics.cs
- OutputCacheSection.cs
- RegisteredScript.cs
- DataPagerFieldCommandEventArgs.cs
- DesignSurfaceCollection.cs
- ToolStripDesignerAvailabilityAttribute.cs
- PropertyInfoSet.cs
- ADMembershipUser.cs
- TextEffectCollection.cs
- shaperfactory.cs
- xmlfixedPageInfo.cs