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
- CheckBoxPopupAdapter.cs
- ToolStripDropDownDesigner.cs
- ArcSegment.cs
- RSACryptoServiceProvider.cs
- ProjectionCamera.cs
- DataGridBoolColumn.cs
- DataGridViewComboBoxCell.cs
- PathFigureCollectionValueSerializer.cs
- BitmapFrame.cs
- OleDbDataReader.cs
- ListChunk.cs
- Interlocked.cs
- XmlNode.cs
- PanelDesigner.cs
- Descriptor.cs
- MethodRental.cs
- PackWebResponse.cs
- DataGridDetailsPresenterAutomationPeer.cs
- MethodImplAttribute.cs
- OutputCacheSettings.cs
- SslStreamSecurityBindingElement.cs
- ExpressionBuilder.cs
- MarkupWriter.cs
- SelectionItemPatternIdentifiers.cs
- DataGridViewColumnStateChangedEventArgs.cs
- IPHostEntry.cs
- ImageCollectionCodeDomSerializer.cs
- ObjectConverter.cs
- InsufficientMemoryException.cs
- OpenTypeLayout.cs
- RemoteCryptoRsaServiceProvider.cs
- ImageFormatConverter.cs
- SqlCommand.cs
- ChannelAcceptor.cs
- ProviderMetadata.cs
- EventLogPermissionEntryCollection.cs
- SafeHandle.cs
- TextDecorations.cs
- MediaSystem.cs
- XhtmlConformanceSection.cs
- AutoCompleteStringCollection.cs
- RTTypeWrapper.cs
- MailSettingsSection.cs
- DataServiceStreamResponse.cs
- OleDbParameter.cs
- WebPartHeaderCloseVerb.cs
- DefaultEventAttribute.cs
- ComponentRenameEvent.cs
- GlobalizationSection.cs
- AppDomainFactory.cs
- _BasicClient.cs
- BitmapMetadata.cs
- Handle.cs
- DropDownHolder.cs
- DataGridHeadersVisibilityToVisibilityConverter.cs
- EntityDataSourceValidationException.cs
- StringHandle.cs
- GACIdentityPermission.cs
- SecureEnvironment.cs
- CleanUpVirtualizedItemEventArgs.cs
- SqlRewriteScalarSubqueries.cs
- mediaeventshelper.cs
- Point3DCollection.cs
- HMACSHA384.cs
- HashSetEqualityComparer.cs
- XmlNavigatorFilter.cs
- ToolStripDropDownClosingEventArgs.cs
- RegexGroupCollection.cs
- WeakEventManager.cs
- Frame.cs
- DiagnosticsConfigurationHandler.cs
- ProcessHostConfigUtils.cs
- BrowserCapabilitiesFactoryBase.cs
- StreamResourceInfo.cs
- AdapterUtil.cs
- PerformanceCounterPermissionAttribute.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- MetadataCache.cs
- IListConverters.cs
- SqlConnection.cs
- SocketException.cs
- BinaryMessageEncodingElement.cs
- DesignTimeTemplateParser.cs
- SqlSupersetValidator.cs
- AppModelKnownContentFactory.cs
- EntityCodeGenerator.cs
- AuthorizationRule.cs
- UIElement.cs
- SystemNetHelpers.cs
- XmlTextReaderImplHelpers.cs
- FixedFindEngine.cs
- PeerNameResolver.cs
- StandardToolWindows.cs
- AnimationClock.cs
- JsonEnumDataContract.cs
- HexParser.cs
- CommandPlan.cs
- ConfigurationElement.cs
- ProxyWebPartManager.cs
- UInt32Storage.cs