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
- UrlSyndicationContent.cs
- UInt32Converter.cs
- FileDialog_Vista_Interop.cs
- ResourceLoader.cs
- TransformedBitmap.cs
- fixedPageContentExtractor.cs
- QuaternionAnimation.cs
- HttpValueCollection.cs
- AssemblyUtil.cs
- EmptyWorkItem.cs
- MessageSecurityOverMsmq.cs
- OracleInfoMessageEventArgs.cs
- MemoryMappedFile.cs
- OleDbCommandBuilder.cs
- Single.cs
- Pen.cs
- ListViewSortEventArgs.cs
- TemplateAction.cs
- FloaterBaseParagraph.cs
- X509CertificateInitiatorClientCredential.cs
- ReplyChannelBinder.cs
- SecurityHelper.cs
- Transaction.cs
- SecureEnvironment.cs
- PointHitTestParameters.cs
- BaseTreeIterator.cs
- Utils.cs
- DataChangedEventManager.cs
- SymLanguageVendor.cs
- CryptoProvider.cs
- FontInfo.cs
- ScanQueryOperator.cs
- LinkArea.cs
- DocumentPaginator.cs
- ToolStripPanel.cs
- TrackingQuery.cs
- ErrorActivity.cs
- DocumentReference.cs
- MSAANativeProvider.cs
- DashStyle.cs
- CookieProtection.cs
- AssemblyResourceLoader.cs
- XPathDocumentIterator.cs
- HttpChannelFactory.cs
- XmlNamespaceMapping.cs
- XmlQualifiedNameTest.cs
- MarkupCompilePass2.cs
- TabControlDesigner.cs
- ContainerVisual.cs
- RouteValueExpressionBuilder.cs
- FixedSOMTableRow.cs
- XmlNodeWriter.cs
- DataBindingCollection.cs
- CodeStatementCollection.cs
- TableRowCollection.cs
- VirtualDirectoryMappingCollection.cs
- StorageMappingItemLoader.cs
- SqlDependency.cs
- newitemfactory.cs
- DataRowCollection.cs
- Utils.cs
- DBSqlParser.cs
- MemoryResponseElement.cs
- TagPrefixAttribute.cs
- EmptyReadOnlyDictionaryInternal.cs
- DSASignatureDeformatter.cs
- HttpRequest.cs
- StringValueConverter.cs
- MimeTypePropertyAttribute.cs
- NamespaceListProperty.cs
- DataPagerFieldItem.cs
- MessageEncodingBindingElement.cs
- _Win32.cs
- ISessionStateStore.cs
- ColorBuilder.cs
- SqlReferenceCollection.cs
- ServiceObjectContainer.cs
- FileReader.cs
- Process.cs
- AppDomainShutdownMonitor.cs
- ErrorStyle.cs
- Monitor.cs
- URIFormatException.cs
- TextBoxLine.cs
- RequestResizeEvent.cs
- oledbmetadatacolumnnames.cs
- DataGrid.cs
- DrawingAttributeSerializer.cs
- WSFederationHttpSecurity.cs
- LateBoundBitmapDecoder.cs
- Debugger.cs
- CodeTryCatchFinallyStatement.cs
- SqlDataSourceSelectingEventArgs.cs
- HttpSysSettings.cs
- XPathAncestorQuery.cs
- DoubleAnimationBase.cs
- StylusButtonEventArgs.cs
- PropertyContainer.cs
- ConfigXmlCDataSection.cs
- AxDesigner.cs