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
- FontConverter.cs
- CodeExpressionStatement.cs
- GenericWebPart.cs
- StandardTransformFactory.cs
- _SecureChannel.cs
- IRCollection.cs
- parserscommon.cs
- Attributes.cs
- MemoryStream.cs
- FixedTextSelectionProcessor.cs
- BitmapImage.cs
- ViewGenerator.cs
- XmlAnyElementAttribute.cs
- MarshalDirectiveException.cs
- Stroke.cs
- BuilderInfo.cs
- CapabilitiesUse.cs
- UnaryQueryOperator.cs
- ObjectManager.cs
- linebase.cs
- SmtpLoginAuthenticationModule.cs
- AssemblyBuilderData.cs
- Executor.cs
- GridViewUpdateEventArgs.cs
- ScrollProperties.cs
- GacUtil.cs
- DashStyle.cs
- MarkupCompiler.cs
- WindowsRichEditRange.cs
- BooleanStorage.cs
- SurrogateSelector.cs
- ListItemParagraph.cs
- Glyph.cs
- TextServicesCompartmentContext.cs
- PeerCollaboration.cs
- OleDbSchemaGuid.cs
- TableCell.cs
- CursorConverter.cs
- SqlErrorCollection.cs
- IDispatchConstantAttribute.cs
- RSACryptoServiceProvider.cs
- BuildManagerHost.cs
- DesignerLabelAdapter.cs
- DirectionalLight.cs
- LogLogRecordEnumerator.cs
- SelectionBorderGlyph.cs
- NavigationHelper.cs
- AssemblyResourceLoader.cs
- SplitterCancelEvent.cs
- CodeFieldReferenceExpression.cs
- UnitySerializationHolder.cs
- ProxyRpc.cs
- RuntimeHandles.cs
- CheckBoxField.cs
- EnumType.cs
- Double.cs
- SqlNamer.cs
- ToolStripTextBox.cs
- SelectionGlyphBase.cs
- CheckBoxFlatAdapter.cs
- CryptoStream.cs
- EntityDataSourceQueryBuilder.cs
- ELinqQueryState.cs
- DetailsViewPagerRow.cs
- ToolTipService.cs
- OrderedDictionaryStateHelper.cs
- FlowLayout.cs
- ByteConverter.cs
- MessageDecoder.cs
- WaitHandleCannotBeOpenedException.cs
- ComponentGlyph.cs
- NameValuePair.cs
- ContentControl.cs
- WebMessageBodyStyleHelper.cs
- RowParagraph.cs
- PerfService.cs
- errorpatternmatcher.cs
- DBDataPermission.cs
- UnitySerializationHolder.cs
- WebServiceErrorEvent.cs
- templategroup.cs
- XmlTextReader.cs
- StylusButtonEventArgs.cs
- BuildManager.cs
- EventInfo.cs
- PrePostDescendentsWalker.cs
- XmlSchemaElement.cs
- DataControlCommands.cs
- ConfigXmlAttribute.cs
- MultipartIdentifier.cs
- NamespaceQuery.cs
- TripleDESCryptoServiceProvider.cs
- ReadOnlyCollection.cs
- VariableQuery.cs
- DtrList.cs
- ConfigXmlWhitespace.cs
- IgnorePropertiesAttribute.cs
- XmlAttributes.cs
- RolePrincipal.cs
- ReadOnlyActivityGlyph.cs