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
- UtilityExtension.cs
- ValidatingPropertiesEventArgs.cs
- TemplateControlParser.cs
- Parser.cs
- AbsoluteQuery.cs
- TypedTableBase.cs
- RawStylusInputCustomDataList.cs
- VirtualPath.cs
- CodeDomSerializer.cs
- SkipQueryOptionExpression.cs
- selecteditemcollection.cs
- designeractionbehavior.cs
- FlowDocumentReaderAutomationPeer.cs
- SerializationHelper.cs
- PolicyValidationException.cs
- HotSpotCollection.cs
- FontDialog.cs
- XPathMessageFilter.cs
- _ContextAwareResult.cs
- WmlFormAdapter.cs
- UIElement3DAutomationPeer.cs
- MonthChangedEventArgs.cs
- HttpAsyncResult.cs
- __Error.cs
- XmlTypeAttribute.cs
- XmlUnspecifiedAttribute.cs
- FixedDocumentPaginator.cs
- TextLine.cs
- WebServiceMethodData.cs
- PackWebRequestFactory.cs
- GC.cs
- StorageConditionPropertyMapping.cs
- WebPartConnectionsCancelEventArgs.cs
- DataListItemEventArgs.cs
- Selector.cs
- TextProperties.cs
- DataSourceXmlClassAttribute.cs
- BinaryVersion.cs
- SHA1Managed.cs
- SafeEventLogWriteHandle.cs
- Visual3D.cs
- WebColorConverter.cs
- StrokeSerializer.cs
- UidPropertyAttribute.cs
- Vector3DAnimationBase.cs
- WebException.cs
- RTTypeWrapper.cs
- NamedPipeConnectionPoolSettingsElement.cs
- EncryptedData.cs
- XPathNodeIterator.cs
- AttachedAnnotation.cs
- ContentPosition.cs
- InstanceData.cs
- ThemeDirectoryCompiler.cs
- ScaleTransform.cs
- __ConsoleStream.cs
- TabControlAutomationPeer.cs
- ArgumentNullException.cs
- LoginNameDesigner.cs
- CaseCqlBlock.cs
- VersionConverter.cs
- EmptyQuery.cs
- VirtualDirectoryMappingCollection.cs
- ClientType.cs
- InternalResources.cs
- GPStream.cs
- MethodCallExpression.cs
- PackageFilter.cs
- ValidationEventArgs.cs
- Mutex.cs
- SamlAuthenticationClaimResource.cs
- PictureBoxDesigner.cs
- QueryCacheEntry.cs
- CaseInsensitiveComparer.cs
- Compilation.cs
- XmlBinaryWriterSession.cs
- HtmlValidatorAdapter.cs
- FileEnumerator.cs
- XmlEncodedRawTextWriter.cs
- BufferedStream.cs
- ActivityCompletionCallbackWrapper.cs
- GetWinFXPath.cs
- RenderTargetBitmap.cs
- CacheSection.cs
- HostingEnvironmentException.cs
- Misc.cs
- SystemDropShadowChrome.cs
- DiscoveryRequestHandler.cs
- EditingCoordinator.cs
- RoutedEventConverter.cs
- PlainXmlDeserializer.cs
- RenderOptions.cs
- StdRegProviderWrapper.cs
- SelectingProviderEventArgs.cs
- DecimalConverter.cs
- InstanceView.cs
- SafeRightsManagementEnvironmentHandle.cs
- Grant.cs
- ScrollChrome.cs
- CqlWriter.cs