Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / Model / DictionaryChange.cs / 1305376 / DictionaryChange.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; class DictionaryChange : ModelChange { public ModelItemDictionary Dictionary { get; set; } public OperationType Operation { get; set; } public ModelItem Key { get; set; } public ModelItem Value { get; set; } public ModelTreeManager ModelTreeManager { get; set; } public override string Description { get { return this.Operation == OperationType.Insert ? SR.DictionaryAddEditingScopeDescription : SR.DictionaryRemoveEditingScopeDescription; } } public override bool Apply() { switch (this.Operation) { case OperationType.Insert: ApplyInsert(); break; case OperationType.Delete: ApplyDelete(); break; default: Fx.Assert("Operation should be Insert or Delete"); break; } return true; } private void ApplyDelete() { ((ModelItemDictionaryImpl)this.Dictionary).RemoveCore(this.Key); ((IModelTreeItem)this.Key).RemoveParent(this.Dictionary); this.ModelTreeManager.ReleaseModelItem(this.Key, this.Dictionary); if (null != this.Value) { ((IModelTreeItem)this.Value).RemoveParent(this.Dictionary); } this.ModelTreeManager.ReleaseModelItem(this.Key, this.Dictionary); this.ModelTreeManager.modelService.OnModelItemRemoved(this.Key); if (null != this.Value) { this.ModelTreeManager.modelService.OnModelItemRemoved(this.Value); } } private void ApplyInsert() { this.ModelTreeManager.ReAddModelItemToModelTree(this.Key); this.ModelTreeManager.ReAddModelItemToModelTree(this.Value); ((ModelItemDictionaryImpl)this.Dictionary).AddCore(this.Key, this.Value); this.ModelTreeManager.modelService.OnModelItemAdded(this.Key); if (null != this.Value) { this.ModelTreeManager.modelService.OnModelItemAdded(this.Value); } } public override Change GetInverse() { OperationType reverseOperation = this.Operation == OperationType.Insert ? OperationType.Delete : OperationType.Insert; return new DictionaryChange() { Dictionary = this.Dictionary, Operation = reverseOperation, Key = this.Key, Value = this.Value, ModelTreeManager = this.ModelTreeManager, }; } public enum OperationType { Insert, Delete } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Presentation.Model { using System; using System.Collections.Generic; using System.Text; using System.Runtime; class DictionaryChange : ModelChange { public ModelItemDictionary Dictionary { get; set; } public OperationType Operation { get; set; } public ModelItem Key { get; set; } public ModelItem Value { get; set; } public ModelTreeManager ModelTreeManager { get; set; } public override string Description { get { return this.Operation == OperationType.Insert ? SR.DictionaryAddEditingScopeDescription : SR.DictionaryRemoveEditingScopeDescription; } } public override bool Apply() { switch (this.Operation) { case OperationType.Insert: ApplyInsert(); break; case OperationType.Delete: ApplyDelete(); break; default: Fx.Assert("Operation should be Insert or Delete"); break; } return true; } private void ApplyDelete() { ((ModelItemDictionaryImpl)this.Dictionary).RemoveCore(this.Key); ((IModelTreeItem)this.Key).RemoveParent(this.Dictionary); this.ModelTreeManager.ReleaseModelItem(this.Key, this.Dictionary); if (null != this.Value) { ((IModelTreeItem)this.Value).RemoveParent(this.Dictionary); } this.ModelTreeManager.ReleaseModelItem(this.Key, this.Dictionary); this.ModelTreeManager.modelService.OnModelItemRemoved(this.Key); if (null != this.Value) { this.ModelTreeManager.modelService.OnModelItemRemoved(this.Value); } } private void ApplyInsert() { this.ModelTreeManager.ReAddModelItemToModelTree(this.Key); this.ModelTreeManager.ReAddModelItemToModelTree(this.Value); ((ModelItemDictionaryImpl)this.Dictionary).AddCore(this.Key, this.Value); this.ModelTreeManager.modelService.OnModelItemAdded(this.Key); if (null != this.Value) { this.ModelTreeManager.modelService.OnModelItemAdded(this.Value); } } public override Change GetInverse() { OperationType reverseOperation = this.Operation == OperationType.Insert ? OperationType.Delete : OperationType.Insert; return new DictionaryChange() { Dictionary = this.Dictionary, Operation = reverseOperation, Key = this.Key, Value = this.Value, ModelTreeManager = this.ModelTreeManager, }; } public enum OperationType { Insert, Delete } } } // 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
- BitmapEffectGeneralTransform.cs
- Thumb.cs
- BodyGlyph.cs
- ITextView.cs
- rsa.cs
- GeneralTransform3D.cs
- SmiMetaData.cs
- HttpConfigurationContext.cs
- DataServiceRequestArgs.cs
- WindowsListViewGroupSubsetLink.cs
- WsdlBuildProvider.cs
- HostingEnvironmentSection.cs
- NavigateUrlConverter.cs
- initElementDictionary.cs
- PopupRootAutomationPeer.cs
- TextRangeAdaptor.cs
- TypeDescriptorContext.cs
- HostingEnvironmentSection.cs
- UnsignedPublishLicense.cs
- CodeDelegateInvokeExpression.cs
- EventManager.cs
- DataGridViewCellContextMenuStripNeededEventArgs.cs
- RawStylusInputCustomDataList.cs
- QueryIntervalOp.cs
- TablePatternIdentifiers.cs
- CustomTokenProvider.cs
- MonthCalendar.cs
- OleDbParameter.cs
- invalidudtexception.cs
- ObjRef.cs
- PointLightBase.cs
- SiteMapNodeItem.cs
- SQLInt64Storage.cs
- MobileFormsAuthentication.cs
- XmlILStorageConverter.cs
- WpfPayload.cs
- CommonRemoteMemoryBlock.cs
- Composition.cs
- TcpServerChannel.cs
- SafeNativeMethods.cs
- DataGridViewEditingControlShowingEventArgs.cs
- DataColumnMapping.cs
- TrustLevel.cs
- Path.cs
- ExecutionEngineException.cs
- Roles.cs
- EncryptedType.cs
- ExportOptions.cs
- CompilerGlobalScopeAttribute.cs
- PartitionResolver.cs
- Geometry.cs
- DeploymentExceptionMapper.cs
- PointHitTestResult.cs
- ApplicationSecurityInfo.cs
- Misc.cs
- SymbolMethod.cs
- WhiteSpaceTrimStringConverter.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- PreservationFileWriter.cs
- IsolatedStorageException.cs
- OutputCacheSettingsSection.cs
- HelpEvent.cs
- GlyphRunDrawing.cs
- CodeObjectCreateExpression.cs
- Int16.cs
- ServicesUtilities.cs
- ListenerConnectionDemuxer.cs
- WebScriptServiceHost.cs
- Comparer.cs
- EncodingTable.cs
- LambdaExpression.cs
- DataGridViewComboBoxEditingControl.cs
- ProtocolsConfigurationEntry.cs
- IndexedString.cs
- Helper.cs
- PolicyLevel.cs
- LayoutTable.cs
- SkewTransform.cs
- OdbcRowUpdatingEvent.cs
- WorkingDirectoryEditor.cs
- MultitargetingHelpers.cs
- LoadGrammarCompletedEventArgs.cs
- CompiledRegexRunnerFactory.cs
- WebMethodAttribute.cs
- ItemsChangedEventArgs.cs
- PathSegment.cs
- SystemInfo.cs
- ArraySegment.cs
- SessionPageStateSection.cs
- ToolStripPanelSelectionGlyph.cs
- FamilyMapCollection.cs
- PixelFormatConverter.cs
- PerspectiveCamera.cs
- DesignerAttribute.cs
- GlobalEventManager.cs
- WebPartEditorOkVerb.cs
- HtmlElement.cs
- GlobalizationAssembly.cs
- EntityTransaction.cs
- MergePropertyDescriptor.cs