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
- KoreanCalendar.cs
- SqlBulkCopy.cs
- SecurityTokenParametersEnumerable.cs
- ControlAdapter.cs
- BufferAllocator.cs
- recordstatefactory.cs
- QueryOptionExpression.cs
- CultureTable.cs
- ListCardsInFileRequest.cs
- Int32Storage.cs
- BatchServiceHost.cs
- XmlSchemaChoice.cs
- WindowHelperService.cs
- Calendar.cs
- TableHeaderCell.cs
- BuilderPropertyEntry.cs
- TemplateNodeContextMenu.cs
- CounterSample.cs
- ReflectionTypeLoadException.cs
- securestring.cs
- EFAssociationProvider.cs
- XmlHierarchicalDataSourceView.cs
- ResourcePermissionBase.cs
- UIHelper.cs
- StreamUpdate.cs
- OSFeature.cs
- TextSchema.cs
- FixedDSBuilder.cs
- AsymmetricKeyExchangeFormatter.cs
- ListParaClient.cs
- CompilationUnit.cs
- RawStylusInputCustomDataList.cs
- WpfPayload.cs
- Base64WriteStateInfo.cs
- WaitHandleCannotBeOpenedException.cs
- NavigationPropertyEmitter.cs
- TypeGeneratedEventArgs.cs
- CornerRadiusConverter.cs
- CachedTypeface.cs
- CssClassPropertyAttribute.cs
- SessionIDManager.cs
- DurableTimerExtension.cs
- InternalControlCollection.cs
- ScriptBehaviorDescriptor.cs
- InputScopeManager.cs
- SupportsEventValidationAttribute.cs
- ExpressionsCollectionEditor.cs
- PathGeometry.cs
- CFStream.cs
- Task.cs
- SubpageParaClient.cs
- AssociationSetEnd.cs
- SiteMembershipCondition.cs
- DefaultObjectMappingItemCollection.cs
- DesignerCalendarAdapter.cs
- ToolStripDropDownClosedEventArgs.cs
- SubpageParaClient.cs
- EqualityComparer.cs
- VBCodeProvider.cs
- TextContainerChangeEventArgs.cs
- HitTestParameters3D.cs
- ArgumentValidation.cs
- DataGridViewRowConverter.cs
- login.cs
- CalendarBlackoutDatesCollection.cs
- MailWriter.cs
- TransformationRules.cs
- BoundPropertyEntry.cs
- ListViewTableCell.cs
- ListControl.cs
- ContextQuery.cs
- EventProviderWriter.cs
- AstTree.cs
- WebPartDisplayMode.cs
- ParallelActivityDesigner.cs
- NetworkInformationException.cs
- ButtonFlatAdapter.cs
- PageAdapter.cs
- StreamProxy.cs
- SqlNodeTypeOperators.cs
- SecurityElement.cs
- ResourceDisplayNameAttribute.cs
- Rfc2898DeriveBytes.cs
- RequestCacheValidator.cs
- SmtpMail.cs
- DllHostedComPlusServiceHost.cs
- ToolStripStatusLabel.cs
- ServicePointManagerElement.cs
- WrappedReader.cs
- WriteTimeStream.cs
- CodeDefaultValueExpression.cs
- XpsFixedDocumentReaderWriter.cs
- HttpCacheVaryByContentEncodings.cs
- HttpCookie.cs
- XsdBuildProvider.cs
- ControlAdapter.cs
- SqlBuffer.cs
- ModuleConfigurationInfo.cs
- XPathArrayIterator.cs
- GlobalProxySelection.cs