Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PeerNearMe.cs
- CacheMemory.cs
- HandlerFactoryWrapper.cs
- QueryInterceptorAttribute.cs
- Config.cs
- TemplateBamlTreeBuilder.cs
- JsonQueryStringConverter.cs
- HelpEvent.cs
- IdentityValidationException.cs
- ISessionStateStore.cs
- Assign.cs
- FamilyMapCollection.cs
- WebServiceBindingAttribute.cs
- DataAdapter.cs
- DocumentPaginator.cs
- ZipIOCentralDirectoryFileHeader.cs
- PenThreadWorker.cs
- AuthorizationRule.cs
- XmlDataSourceNodeDescriptor.cs
- InkSerializer.cs
- UnsafeMethods.cs
- WmlMobileTextWriter.cs
- XmlSchemaAnnotated.cs
- XmlEntityReference.cs
- Util.cs
- EastAsianLunisolarCalendar.cs
- InputBuffer.cs
- ConfigXmlText.cs
- RuleSettings.cs
- XmlBinaryReader.cs
- CodeDirectiveCollection.cs
- FloatMinMaxAggregationOperator.cs
- MediaEntryAttribute.cs
- XmlJsonReader.cs
- ProtocolException.cs
- DefaultClaimSet.cs
- Imaging.cs
- TeredoHelper.cs
- HttpHandlersSection.cs
- AtomServiceDocumentSerializer.cs
- Dictionary.cs
- DataShape.cs
- CapabilitiesUse.cs
- ToolboxSnapDragDropEventArgs.cs
- IsolatedStorage.cs
- RuntimeHelpers.cs
- SizeKeyFrameCollection.cs
- GeneralTransform.cs
- DataRecordObjectView.cs
- LayoutExceptionEventArgs.cs
- SafeLibraryHandle.cs
- EndOfStreamException.cs
- HandlerFactoryWrapper.cs
- XmlSchemaSimpleContentExtension.cs
- DirectoryInfo.cs
- NamedPipeChannelListener.cs
- LogoValidationException.cs
- CompiledIdentityConstraint.cs
- ServiceHostFactory.cs
- TypeHelpers.cs
- XmlComment.cs
- LocalizabilityAttribute.cs
- GlyphingCache.cs
- UdpTransportBindingElement.cs
- Symbol.cs
- SafeNativeMethods.cs
- WebPartConnectionsCloseVerb.cs
- ConfigurationValidatorBase.cs
- GradientSpreadMethodValidation.cs
- ItemCheckEvent.cs
- ControlAdapter.cs
- ClipboardData.cs
- CellParaClient.cs
- MobileCategoryAttribute.cs
- SmtpNegotiateAuthenticationModule.cs
- ImmComposition.cs
- SemaphoreFullException.cs
- Bits.cs
- WebReferencesBuildProvider.cs
- TakeOrSkipQueryOperator.cs
- RightNameExpirationInfoPair.cs
- FirstMatchCodeGroup.cs
- QueryContinueDragEventArgs.cs
- CheckoutException.cs
- WebControl.cs
- ExceptQueryOperator.cs
- Subset.cs
- HttpRequest.cs
- TextSelectionHelper.cs
- ConnectionPoolRegistry.cs
- HelloMessageApril2005.cs
- FixedPosition.cs
- EpmSyndicationContentSerializer.cs
- dsa.cs
- SQLCharsStorage.cs
- HierarchicalDataSourceControl.cs
- HttpRawResponse.cs
- WebBrowserPermission.cs
- DatePickerTextBox.cs
- Delegate.cs