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
- SplineKeyFrames.cs
- DataGridHeaderBorder.cs
- RootBuilder.cs
- HiddenFieldPageStatePersister.cs
- Gdiplus.cs
- Int32KeyFrameCollection.cs
- WebPartTransformerCollection.cs
- QilReplaceVisitor.cs
- ScopeElementCollection.cs
- XamlWrappingReader.cs
- ExceptionDetail.cs
- Bitmap.cs
- StoreAnnotationsMap.cs
- NotifyIcon.cs
- DataBoundControl.cs
- InstanceNormalEvent.cs
- Line.cs
- EasingFunctionBase.cs
- IsolatedStorageFile.cs
- ISFClipboardData.cs
- DataRecordObjectView.cs
- Membership.cs
- InlineUIContainer.cs
- SystemNetHelpers.cs
- Pen.cs
- _UriTypeConverter.cs
- WorkBatch.cs
- ResXDataNode.cs
- TextBoxAutomationPeer.cs
- Stylesheet.cs
- OracleCommand.cs
- SamlAuthorityBinding.cs
- TextDocumentView.cs
- Misc.cs
- VersionedStream.cs
- Deflater.cs
- XamlPointCollectionSerializer.cs
- ServiceObjectContainer.cs
- EpmSyndicationContentDeSerializer.cs
- FtpWebRequest.cs
- EventDescriptorCollection.cs
- TextAutomationPeer.cs
- Drawing.cs
- TableCell.cs
- BufferBuilder.cs
- TransformValueSerializer.cs
- XmlConvert.cs
- TypeGeneratedEventArgs.cs
- DNS.cs
- LayoutDump.cs
- WindowsFormsHostPropertyMap.cs
- DesignerCatalogPartChrome.cs
- ToolboxBitmapAttribute.cs
- ContentDisposition.cs
- ManagementPath.cs
- ParallelDesigner.cs
- Operators.cs
- FileDataSourceCache.cs
- ComNativeDescriptor.cs
- Timeline.cs
- ConfigurationException.cs
- ConfigXmlDocument.cs
- PrintController.cs
- SchemaNotation.cs
- HttpResponseBase.cs
- MessageContractImporter.cs
- WSMessageEncoding.cs
- Typography.cs
- WindowsEditBoxRange.cs
- RtfNavigator.cs
- AppDomain.cs
- CheckBoxDesigner.cs
- PaperSource.cs
- ImageConverter.cs
- AccessDataSourceWizardForm.cs
- XmlIgnoreAttribute.cs
- HtmlTableCell.cs
- BamlResourceDeserializer.cs
- MaskedTextBox.cs
- Source.cs
- LineGeometry.cs
- InputElement.cs
- DashStyle.cs
- GPStream.cs
- TextEditorContextMenu.cs
- ResourceDictionary.cs
- xdrvalidator.cs
- TextEditorCharacters.cs
- SessionPageStatePersister.cs
- RegexRunnerFactory.cs
- InstanceDataCollectionCollection.cs
- CollectionBase.cs
- WebPartMinimizeVerb.cs
- CompressedStack.cs
- HtmlTextArea.cs
- ConditionValidator.cs
- HttpHandlersSection.cs
- TextServicesLoader.cs
- XpsLiterals.cs
- ReflectionPermission.cs