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
- ButtonChrome.cs
- UnsafeNativeMethods.cs
- WebPageTraceListener.cs
- SeparatorAutomationPeer.cs
- SerializableTypeCodeDomSerializer.cs
- TypeForwardedToAttribute.cs
- LogLogRecordEnumerator.cs
- Activity.cs
- PropertyEntry.cs
- RelationshipEntry.cs
- PrintingPermission.cs
- DataGridParentRows.cs
- ControlCommandSet.cs
- InputChannelBinder.cs
- TreeNodeBindingCollection.cs
- NominalTypeEliminator.cs
- InstanceLockedException.cs
- RuntimeConfigLKG.cs
- MenuAutoFormat.cs
- cookieexception.cs
- SemaphoreSlim.cs
- panel.cs
- WSDualHttpBinding.cs
- RsaSecurityTokenAuthenticator.cs
- ChannelHandler.cs
- Utils.cs
- AmbientEnvironment.cs
- DBSchemaRow.cs
- Tool.cs
- TextTreeExtractElementUndoUnit.cs
- DataMemberFieldConverter.cs
- Cursor.cs
- OptionalMessageQuery.cs
- TypeInfo.cs
- LogEntryUtils.cs
- LinkAreaEditor.cs
- NamedPermissionSet.cs
- ConfigUtil.cs
- Help.cs
- DocumentViewer.cs
- BlurBitmapEffect.cs
- BitSet.cs
- SplitterEvent.cs
- CacheMemory.cs
- PublisherMembershipCondition.cs
- CompiledXpathExpr.cs
- LinkClickEvent.cs
- ResourceContainer.cs
- WindowsNonControl.cs
- XmlAnyElementAttributes.cs
- PrtCap_Reader.cs
- PageSetupDialog.cs
- ColumnWidthChangedEvent.cs
- GestureRecognitionResult.cs
- WebScriptMetadataInstanceContextProvider.cs
- CalendarAutomationPeer.cs
- GridLength.cs
- ValidationSummary.cs
- MarkupCompilePass2.cs
- clipboard.cs
- ConfigurationPropertyCollection.cs
- XmlReaderSettings.cs
- WebPartZoneBase.cs
- Menu.cs
- ExpressionBuilder.cs
- SchemaAttDef.cs
- ConstraintManager.cs
- RawStylusInput.cs
- IisTraceListener.cs
- ErrorFormatter.cs
- SqlCommandBuilder.cs
- Scheduler.cs
- FontDifferentiator.cs
- DataGridViewCellStyleConverter.cs
- DynamicMethod.cs
- Boolean.cs
- MaxValueConverter.cs
- DefaultSection.cs
- PropertyGrid.cs
- InteropAutomationProvider.cs
- SqlVisitor.cs
- Listbox.cs
- EndpointDispatcher.cs
- ByteBufferPool.cs
- EncryptedReference.cs
- AuthorizationRule.cs
- TcpSocketManager.cs
- WebBrowserUriTypeConverter.cs
- RemotingClientProxy.cs
- InkCanvasInnerCanvas.cs
- CompleteWizardStep.cs
- UnhandledExceptionEventArgs.cs
- EntityDataSourceDesignerHelper.cs
- DataControlImageButton.cs
- xmlfixedPageInfo.cs
- NoClickablePointException.cs
- XmlSchemaRedefine.cs
- SerialStream.cs
- Bezier.cs
- _NetworkingPerfCounters.cs