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
- ReadOnlyDataSourceView.cs
- DbParameterCollectionHelper.cs
- Utilities.cs
- ComAdminWrapper.cs
- MenuDesigner.cs
- ComNativeDescriptor.cs
- LockCookie.cs
- Point3DAnimation.cs
- ToolStripLocationCancelEventArgs.cs
- HttpSocketManager.cs
- DataObject.cs
- SettingsPropertyValue.cs
- ConfigurationErrorsException.cs
- SqlClientWrapperSmiStreamChars.cs
- EventData.cs
- LinearGradientBrush.cs
- SortedDictionary.cs
- ChannelManager.cs
- MsmqBindingMonitor.cs
- HtmlElement.cs
- CodeArrayCreateExpression.cs
- UTF8Encoding.cs
- TextEndOfSegment.cs
- EntityDesignerBuildProvider.cs
- EntityDesignerDataSourceView.cs
- CodeSnippetCompileUnit.cs
- Equal.cs
- DetailsViewInsertEventArgs.cs
- FontFamilyIdentifier.cs
- recordstatefactory.cs
- ClientApiGenerator.cs
- AspCompat.cs
- DropShadowEffect.cs
- DataSysAttribute.cs
- Substitution.cs
- BitVector32.cs
- ServicePointManager.cs
- StrongName.cs
- TextEffect.cs
- LocalFileSettingsProvider.cs
- EntityDataReader.cs
- DataMisalignedException.cs
- SystemIcons.cs
- ColorBlend.cs
- TextRange.cs
- BinHexEncoder.cs
- _DigestClient.cs
- XhtmlTextWriter.cs
- CodeCommentStatement.cs
- ClrProviderManifest.cs
- COM2TypeInfoProcessor.cs
- XmlWriterSettings.cs
- FormatterServices.cs
- MorphHelper.cs
- BufferAllocator.cs
- DelegatingTypeDescriptionProvider.cs
- DiscoveryRequestHandler.cs
- UnsafeNativeMethods.cs
- Window.cs
- CurrentChangingEventManager.cs
- WizardPanel.cs
- GenerateHelper.cs
- InfoCardService.cs
- NativeMethodsCLR.cs
- ImpersonateTokenRef.cs
- BehaviorEditorPart.cs
- BaseHashHelper.cs
- BoundingRectTracker.cs
- SqlTypeSystemProvider.cs
- MsmqPoisonMessageException.cs
- SqlClientWrapperSmiStream.cs
- ComponentResourceKeyConverter.cs
- LocalBuilder.cs
- InheritanceUI.cs
- SecurityCriticalDataForSet.cs
- NavigationFailedEventArgs.cs
- CodePageEncoding.cs
- EventProxy.cs
- LoadWorkflowCommand.cs
- GridToolTip.cs
- EncryptedPackage.cs
- HtmlInputRadioButton.cs
- SByteStorage.cs
- DataGridRelationshipRow.cs
- GlyphTypeface.cs
- _ScatterGatherBuffers.cs
- ActivityExecutionFilter.cs
- xml.cs
- ExpandCollapseProviderWrapper.cs
- PersonalizationEntry.cs
- Imaging.cs
- LineServicesCallbacks.cs
- SpellerInterop.cs
- NullableIntSumAggregationOperator.cs
- LabelInfo.cs
- SqlInternalConnection.cs
- ActivityExecutor.cs
- TypeInitializationException.cs
- CursorConverter.cs
- CollectionBase.cs