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
- WebBrowserBase.cs
- GeneralTransform3DTo2DTo3D.cs
- IntMinMaxAggregationOperator.cs
- XmlCodeExporter.cs
- DefaultShape.cs
- DictionaryManager.cs
- TextSelection.cs
- InheritablePropertyChangeInfo.cs
- RadioButton.cs
- ValueQuery.cs
- ThousandthOfEmRealDoubles.cs
- SafeFindHandle.cs
- IISMapPath.cs
- TextParagraphView.cs
- SafeEventLogWriteHandle.cs
- Models.cs
- CodeGenHelper.cs
- JournalNavigationScope.cs
- ApplicationActivator.cs
- TemplateControlCodeDomTreeGenerator.cs
- NetCodeGroup.cs
- ConstraintConverter.cs
- TypedColumnHandler.cs
- WaitHandleCannotBeOpenedException.cs
- GeneralTransform.cs
- ConditionedDesigner.cs
- SettingsBindableAttribute.cs
- JsonSerializer.cs
- FormsAuthenticationUserCollection.cs
- Int32Storage.cs
- CodeAttachEventStatement.cs
- NeedSkipTokenVisitor.cs
- PenContexts.cs
- CurrentChangingEventManager.cs
- UTF32Encoding.cs
- NativeMethodsCLR.cs
- TemplatePagerField.cs
- Buffer.cs
- RegistryPermission.cs
- Model3D.cs
- IsolatedStorageFile.cs
- EndpointBehaviorElementCollection.cs
- EntitySetRetriever.cs
- QualificationDataAttribute.cs
- SharedConnectionWorkflowTransactionService.cs
- XsdBuilder.cs
- WebHttpDispatchOperationSelectorData.cs
- ProjectionCamera.cs
- ProtectedProviderSettings.cs
- Command.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- DocumentOrderQuery.cs
- StickyNoteContentControl.cs
- VBCodeProvider.cs
- Variant.cs
- COSERVERINFO.cs
- AccessViolationException.cs
- Rule.cs
- ParseChildrenAsPropertiesAttribute.cs
- ScrollableControlDesigner.cs
- _IPv6Address.cs
- BindableTemplateBuilder.cs
- LongTypeConverter.cs
- VersionPair.cs
- SecurityPolicySection.cs
- SHA512Managed.cs
- UTF32Encoding.cs
- DiscoveryMessageSequence11.cs
- ListControlConvertEventArgs.cs
- Dynamic.cs
- Pts.cs
- ExtendedTransformFactory.cs
- CellParagraph.cs
- ImportedPolicyConversionContext.cs
- FixedSchema.cs
- CommandField.cs
- ConfigXmlComment.cs
- DispatcherFrame.cs
- PostBackTrigger.cs
- VirtualPath.cs
- Decimal.cs
- assemblycache.cs
- ProfileProvider.cs
- EnvironmentPermission.cs
- TraceHwndHost.cs
- IOException.cs
- PasswordBox.cs
- TabletDeviceInfo.cs
- WindowsPen.cs
- UnicastIPAddressInformationCollection.cs
- CommandExpr.cs
- DescendantQuery.cs
- MetabaseSettings.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- CodeAssignStatement.cs
- ToolStripDesigner.cs
- RMEnrollmentPage1.cs
- filewebrequest.cs
- ProfilePropertySettings.cs
- XmlAnyElementAttributes.cs