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
- IListConverters.cs
- InvalidateEvent.cs
- LinkClickEvent.cs
- JsonByteArrayDataContract.cs
- ListViewItemMouseHoverEvent.cs
- SystemIcmpV4Statistics.cs
- LinqDataSourceInsertEventArgs.cs
- UpdatePanelTriggerCollection.cs
- LogSwitch.cs
- XPathNodeHelper.cs
- SaveFileDialog.cs
- ToolStripManager.cs
- RectConverter.cs
- ReadWriteObjectLock.cs
- ColumnCollection.cs
- SchemaTableOptionalColumn.cs
- FillRuleValidation.cs
- StringResourceManager.cs
- PrimitiveXmlSerializers.cs
- TypeLibConverter.cs
- ServiceModelEnumValidatorAttribute.cs
- QueryConverter.cs
- LogicalTreeHelper.cs
- Vector3DIndependentAnimationStorage.cs
- Ref.cs
- RenderContext.cs
- StreamWriter.cs
- HttpCookiesSection.cs
- IssuanceLicense.cs
- GifBitmapDecoder.cs
- StringUtil.cs
- FunctionMappingTranslator.cs
- CodeVariableDeclarationStatement.cs
- DateTimeOffset.cs
- TreeViewAutomationPeer.cs
- MergablePropertyAttribute.cs
- ToolboxSnapDragDropEventArgs.cs
- WindowsListViewGroupSubsetLink.cs
- SymbolUsageManager.cs
- ListDesigner.cs
- UserControlBuildProvider.cs
- ScriptManager.cs
- SimpleRecyclingCache.cs
- ResXResourceReader.cs
- DoWorkEventArgs.cs
- CorrelationToken.cs
- DataGridDesigner.cs
- WindowsToolbarAsMenu.cs
- ZipIOExtraFieldPaddingElement.cs
- Reference.cs
- CompoundFileStorageReference.cs
- SqlTypesSchemaImporter.cs
- AuthorizationRuleCollection.cs
- mediaclock.cs
- RequiredFieldValidator.cs
- XmlObjectSerializerWriteContextComplex.cs
- LinearKeyFrames.cs
- OracleLob.cs
- SymDocumentType.cs
- DataColumn.cs
- BuilderInfo.cs
- SeverityFilter.cs
- DataGridViewCheckBoxCell.cs
- Size3DConverter.cs
- ArraySegment.cs
- JapaneseLunisolarCalendar.cs
- Vertex.cs
- HashHelpers.cs
- DataControlLinkButton.cs
- DataContractSerializer.cs
- Pen.cs
- PersonalizationProviderHelper.cs
- MouseGestureValueSerializer.cs
- UpdateProgress.cs
- ClipboardData.cs
- RowType.cs
- LocalizationComments.cs
- ImageAttributes.cs
- NameValueCollection.cs
- AggregationMinMaxHelpers.cs
- RtType.cs
- ReachFixedPageSerializer.cs
- ContainerControl.cs
- EdmProviderManifest.cs
- DbDataRecord.cs
- XmlSchemaExternal.cs
- NavigationPropertyEmitter.cs
- FileFormatException.cs
- ObjectResult.cs
- MatrixStack.cs
- RectAnimationBase.cs
- AndCondition.cs
- URLMembershipCondition.cs
- ListView.cs
- XamlVector3DCollectionSerializer.cs
- UserPreferenceChangingEventArgs.cs
- XPathNodePointer.cs
- ComboBox.cs
- MiniParameterInfo.cs
- XmlSchemaComplexContentExtension.cs