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
- MimeImporter.cs
- MetafileHeaderWmf.cs
- TransactionInformation.cs
- SqlConnectionManager.cs
- Vector3DKeyFrameCollection.cs
- DataGridViewTextBoxEditingControl.cs
- XmlCharCheckingReader.cs
- CodeSnippetTypeMember.cs
- ToolStripSeparator.cs
- MobileComponentEditorPage.cs
- ComboBoxRenderer.cs
- SaveWorkflowAsyncResult.cs
- SiteMapDataSourceView.cs
- ClosableStream.cs
- PackagePart.cs
- RegexCharClass.cs
- ResourceAssociationSetEnd.cs
- CollectionView.cs
- RepeaterItemCollection.cs
- StringFreezingAttribute.cs
- DataGridColumnHeaderItemAutomationPeer.cs
- NonDualMessageSecurityOverHttp.cs
- DependencyObject.cs
- TableRowsCollectionEditor.cs
- UnmanagedMemoryStream.cs
- ElementUtil.cs
- MemoryResponseElement.cs
- SafeNativeMethods.cs
- Mutex.cs
- ScrollEventArgs.cs
- SelfIssuedAuthRSAPKCS1SignatureFormatter.cs
- ControlBuilder.cs
- XmlArrayItemAttributes.cs
- EncodingTable.cs
- CharEnumerator.cs
- StandardCommands.cs
- LocationFactory.cs
- DataGridViewImageColumn.cs
- CompletionBookmark.cs
- ListItemCollection.cs
- FileNotFoundException.cs
- SourceFilter.cs
- WindowsFormsLinkLabel.cs
- DataGridItemAttachedStorage.cs
- ServiceNameElementCollection.cs
- RedirectionProxy.cs
- IncrementalHitTester.cs
- ColorConvertedBitmapExtension.cs
- ProtocolElementCollection.cs
- ExpandedWrapper.cs
- ElementHost.cs
- TemplateBindingExpression.cs
- controlskin.cs
- EmbeddedMailObject.cs
- OneOfScalarConst.cs
- FunctionImportElement.cs
- StickyNoteAnnotations.cs
- DataList.cs
- ProviderCollection.cs
- NavigateEvent.cs
- HtmlPageAdapter.cs
- CompilerResults.cs
- BindingListCollectionView.cs
- MethodResolver.cs
- ProjectionPathSegment.cs
- DesignTimeParseData.cs
- DictionaryKeyPropertyAttribute.cs
- Helper.cs
- HttpCookieCollection.cs
- SizeFConverter.cs
- DesignTimeXamlWriter.cs
- CultureTable.cs
- DataServiceCollectionOfT.cs
- ErrorItem.cs
- ArrayWithOffset.cs
- AccessorTable.cs
- Misc.cs
- SchemaConstraints.cs
- FlowDocumentReaderAutomationPeer.cs
- WebPartDescriptionCollection.cs
- WebContext.cs
- DataTablePropertyDescriptor.cs
- SR.cs
- WebPartCancelEventArgs.cs
- SystemIPAddressInformation.cs
- CounterSet.cs
- LicenseContext.cs
- ISAPIWorkerRequest.cs
- WinEventQueueItem.cs
- HtmlMobileTextWriter.cs
- PackWebRequestFactory.cs
- ConnectionPoint.cs
- ScriptingJsonSerializationSection.cs
- DistinctQueryOperator.cs
- PartialCachingControl.cs
- ErasingStroke.cs
- login.cs
- VectorCollection.cs
- SqlDependencyListener.cs
- UnsafeNetInfoNativeMethods.cs