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
- WindowsIPAddress.cs
- HtmlTable.cs
- NamespaceQuery.cs
- DataGridItem.cs
- TextModifier.cs
- ButtonFieldBase.cs
- TimeSpanMinutesConverter.cs
- TranslateTransform.cs
- TransformedBitmap.cs
- WebServiceData.cs
- TriggerBase.cs
- dbenumerator.cs
- ObjectCache.cs
- DocumentAutomationPeer.cs
- TagPrefixAttribute.cs
- ItemType.cs
- ServicePoint.cs
- DifferencingCollection.cs
- DataColumnCollection.cs
- RemoteWebConfigurationHostStream.cs
- XmlBaseReader.cs
- TlsnegoTokenAuthenticator.cs
- MessageQueueEnumerator.cs
- Simplifier.cs
- SQLCharsStorage.cs
- RequestBringIntoViewEventArgs.cs
- ClipboardProcessor.cs
- ParameterBuilder.cs
- GeneralTransform.cs
- ResourceReader.cs
- ListViewGroupConverter.cs
- DefaultMemberAttribute.cs
- DetailsViewDeleteEventArgs.cs
- EntityDataSourceWizardForm.cs
- ConnectivityStatus.cs
- BigInt.cs
- TableItemStyle.cs
- DataStorage.cs
- FieldMetadata.cs
- PropertyPushdownHelper.cs
- GridToolTip.cs
- WmlTextBoxAdapter.cs
- ControlValuePropertyAttribute.cs
- UnaryNode.cs
- ContractInstanceProvider.cs
- ErrorTableItemStyle.cs
- ColorTransform.cs
- OdbcRowUpdatingEvent.cs
- NestPullup.cs
- DateTimeOffsetConverter.cs
- EffectiveValueEntry.cs
- BitmapEffectInputConnector.cs
- RtfNavigator.cs
- UnhandledExceptionEventArgs.cs
- ParameterModifier.cs
- BitmapCache.cs
- ZipIOExtraFieldZip64Element.cs
- ExpandedProjectionNode.cs
- WebCategoryAttribute.cs
- ProjectionAnalyzer.cs
- ClientProxyGenerator.cs
- AuthenticationService.cs
- PageBreakRecord.cs
- RayHitTestParameters.cs
- updateconfighost.cs
- Exceptions.cs
- DispatchWrapper.cs
- EventArgs.cs
- sqlser.cs
- WorkItem.cs
- DictionaryEntry.cs
- EncoderBestFitFallback.cs
- Track.cs
- CacheVirtualItemsEvent.cs
- FontClient.cs
- DataGridViewButtonCell.cs
- WizardPanel.cs
- SafeRightsManagementHandle.cs
- BamlVersionHeader.cs
- BehaviorEditorPart.cs
- Material.cs
- DataTableMapping.cs
- TreeView.cs
- ChannelManager.cs
- BitmapEffectOutputConnector.cs
- SByteStorage.cs
- AggregateNode.cs
- CompModSwitches.cs
- MouseCaptureWithinProperty.cs
- IgnoreSectionHandler.cs
- ToolTipAutomationPeer.cs
- BindingManagerDataErrorEventArgs.cs
- SiteMapSection.cs
- BindingNavigator.cs
- DependentList.cs
- WebPartAddingEventArgs.cs
- UpdatableWrapper.cs
- DurableOperationContext.cs
- Color.cs
- ItemList.cs