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
- ObjectDataSourceSelectingEventArgs.cs
- ElementFactory.cs
- WebPartVerbCollection.cs
- AnimationLayer.cs
- Delegate.cs
- XmlNodeWriter.cs
- RoutedEventHandlerInfo.cs
- InstrumentationTracker.cs
- WithStatement.cs
- DesignerActionListCollection.cs
- WebPartDisplayModeEventArgs.cs
- DataGridPagerStyle.cs
- sqlmetadatafactory.cs
- DesignerImageAdapter.cs
- EventLogEntry.cs
- WebFaultClientMessageInspector.cs
- AppendHelper.cs
- NameValueFileSectionHandler.cs
- ImageAutomationPeer.cs
- ToolboxItem.cs
- DataTemplateSelector.cs
- Point4DValueSerializer.cs
- DoubleStorage.cs
- LinqTreeNodeEvaluator.cs
- ProfileModule.cs
- Token.cs
- FileSystemInfo.cs
- coordinatorscratchpad.cs
- RawUIStateInputReport.cs
- DeclarationUpdate.cs
- RegexRunnerFactory.cs
- itemelement.cs
- XmlAttributeCache.cs
- SchemaObjectWriter.cs
- PropertyItemInternal.cs
- FlowPosition.cs
- PackageFilter.cs
- Peer.cs
- DoubleConverter.cs
- DataSetSchema.cs
- BrowserCapabilitiesFactory35.cs
- XmlAnyAttributeAttribute.cs
- HScrollBar.cs
- SortDescription.cs
- InputLangChangeRequestEvent.cs
- DiscardableAttribute.cs
- MarginsConverter.cs
- AccessText.cs
- Column.cs
- UniqueID.cs
- ComplexPropertyEntry.cs
- IndentedWriter.cs
- NavigationWindow.cs
- Compress.cs
- BeginEvent.cs
- PixelFormats.cs
- AbandonedMutexException.cs
- FixedStringLookup.cs
- Selector.cs
- TreeViewHitTestInfo.cs
- ContentOperations.cs
- Funcletizer.cs
- TextPointer.cs
- BaseCodePageEncoding.cs
- ThumbAutomationPeer.cs
- OutputCacheEntry.cs
- RtfToken.cs
- DataListItem.cs
- ZipIOCentralDirectoryBlock.cs
- LiteralTextParser.cs
- PointCollectionConverter.cs
- ValidationPropertyAttribute.cs
- ElementProxy.cs
- coordinator.cs
- UIElementCollection.cs
- ActivityScheduledRecord.cs
- StructuredTypeInfo.cs
- DataGridViewColumnTypeEditor.cs
- ResourceContainer.cs
- ColorTransformHelper.cs
- GenericTypeParameterBuilder.cs
- OleDbCommandBuilder.cs
- ListChangedEventArgs.cs
- Int32CAMarshaler.cs
- FtpCachePolicyElement.cs
- ProvidersHelper.cs
- UITypeEditor.cs
- MulticastOption.cs
- EventMap.cs
- MobileControlBuilder.cs
- CacheAxisQuery.cs
- ArrangedElement.cs
- CodeComment.cs
- PersistenceTypeAttribute.cs
- PrintingPermissionAttribute.cs
- SafeRegistryHandle.cs
- InternalResources.cs
- InitiatorServiceModelSecurityTokenRequirement.cs
- TreeNodeMouseHoverEvent.cs
- EntityKeyElement.cs