Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / DeleteHelper.cs / 1305376 / DeleteHelper.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Presentation { using System.Activities.Presentation.Model; using System.Activities.Presentation.View; using System.Collections.Generic; using System.Linq; static class DeleteHelper { public static bool CanDelete(EditingContext context) { if (context == null) { throw FxTrace.Exception.AsError(new ArgumentNullException("context")); } bool canExecute = false; Selection selection = context.Items.GetValue(); if (null != selection && selection.SelectionCount > 0) { DesignerView designerView = context.Services.GetService (); canExecute = selection.SelectedObjects.All( p => (null != p.View && p.View is WorkflowViewElement && !p.View.Equals(designerView.RootDesigner))); } return canExecute; } public static void Delete(EditingContext context) { if (context == null) { throw FxTrace.Exception.AsError(new ArgumentNullException("context")); } Selection selection = context.Items.GetValue (); if (null != selection) { bool selectRoot = false; DesignerView designerView = context.Services.GetService (); var toDelete = selection.SelectedObjects.Where(p => null != p.View && p.View is WorkflowViewElement && !p.View.Equals(designerView.RootDesigner)); if (toDelete.Count() > 0) { using (EditingScope es = (EditingScope)toDelete.FirstOrDefault().BeginEdit(SR.DeleteOperationEditingScopeDescription)) { Dictionary > containerToModelItemsDict = new Dictionary >(); List modelItemsPerContainer; foreach (var item in toDelete) { ICompositeView container = (ICompositeView)DragDropHelper.GetCompositeView((WorkflowViewElement)item.View); if (null != item.Parent && typeof(ActivityAction).IsAssignableFrom(item.Parent.ItemType)) { item.Parent.Properties["Handler"].ClearValue(); selectRoot = true; } else if (null != container) { if (!containerToModelItemsDict.TryGetValue(container, out modelItemsPerContainer)) { modelItemsPerContainer = new List (); containerToModelItemsDict.Add(container, modelItemsPerContainer); } modelItemsPerContainer.Add(item); } } foreach (ICompositeView container in containerToModelItemsDict.Keys) { container.OnItemsDelete(containerToModelItemsDict[container]); selectRoot = true; } if (selectRoot) { DesignerView view = context.Services.GetService (); if (null != view) { WorkflowViewElement rootView = view.RootDesigner as WorkflowViewElement; if (rootView != null) { Selection.SelectOnly(context, rootView.ModelItem); } } } es.Complete(); } } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Presentation { using System.Activities.Presentation.Model; using System.Activities.Presentation.View; using System.Collections.Generic; using System.Linq; static class DeleteHelper { public static bool CanDelete(EditingContext context) { if (context == null) { throw FxTrace.Exception.AsError(new ArgumentNullException("context")); } bool canExecute = false; Selection selection = context.Items.GetValue (); if (null != selection && selection.SelectionCount > 0) { DesignerView designerView = context.Services.GetService (); canExecute = selection.SelectedObjects.All( p => (null != p.View && p.View is WorkflowViewElement && !p.View.Equals(designerView.RootDesigner))); } return canExecute; } public static void Delete(EditingContext context) { if (context == null) { throw FxTrace.Exception.AsError(new ArgumentNullException("context")); } Selection selection = context.Items.GetValue (); if (null != selection) { bool selectRoot = false; DesignerView designerView = context.Services.GetService (); var toDelete = selection.SelectedObjects.Where(p => null != p.View && p.View is WorkflowViewElement && !p.View.Equals(designerView.RootDesigner)); if (toDelete.Count() > 0) { using (EditingScope es = (EditingScope)toDelete.FirstOrDefault().BeginEdit(SR.DeleteOperationEditingScopeDescription)) { Dictionary > containerToModelItemsDict = new Dictionary >(); List modelItemsPerContainer; foreach (var item in toDelete) { ICompositeView container = (ICompositeView)DragDropHelper.GetCompositeView((WorkflowViewElement)item.View); if (null != item.Parent && typeof(ActivityAction).IsAssignableFrom(item.Parent.ItemType)) { item.Parent.Properties["Handler"].ClearValue(); selectRoot = true; } else if (null != container) { if (!containerToModelItemsDict.TryGetValue(container, out modelItemsPerContainer)) { modelItemsPerContainer = new List (); containerToModelItemsDict.Add(container, modelItemsPerContainer); } modelItemsPerContainer.Add(item); } } foreach (ICompositeView container in containerToModelItemsDict.Keys) { container.OnItemsDelete(containerToModelItemsDict[container]); selectRoot = true; } if (selectRoot) { DesignerView view = context.Services.GetService (); if (null != view) { WorkflowViewElement rootView = view.RootDesigner as WorkflowViewElement; if (rootView != null) { Selection.SelectOnly(context, rootView.ModelItem); } } } es.Complete(); } } } } } } // 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
- DesignerSerializationVisibilityAttribute.cs
- MimeParameterWriter.cs
- DateTimeFormat.cs
- FeatureSupport.cs
- Globals.cs
- HtmlImage.cs
- CharAnimationBase.cs
- SamlDoNotCacheCondition.cs
- exports.cs
- ByteAnimation.cs
- FlowDocumentPaginator.cs
- GeneralTransform3D.cs
- EmptyEnumerable.cs
- CapabilitiesPattern.cs
- RestHandler.cs
- CqlQuery.cs
- ItemType.cs
- EmptyReadOnlyDictionaryInternal.cs
- ActivityExecutorSurrogate.cs
- AudioFormatConverter.cs
- VectorKeyFrameCollection.cs
- Image.cs
- EntityCollection.cs
- TreeBuilderXamlTranslator.cs
- COM2ExtendedTypeConverter.cs
- FrameworkContextData.cs
- ContactManager.cs
- WeakReference.cs
- StatusBarItem.cs
- ContextMenuAutomationPeer.cs
- XmlDocumentType.cs
- NetworkInformationPermission.cs
- DelayedRegex.cs
- DragEventArgs.cs
- ReadOnlyCollection.cs
- TdsParser.cs
- FocusChangedEventArgs.cs
- DataColumnCollection.cs
- DrawingBrush.cs
- FileDialogPermission.cs
- CdpEqualityComparer.cs
- MatrixValueSerializer.cs
- TextFindEngine.cs
- ProxyWebPartConnectionCollection.cs
- ViewManager.cs
- CallTemplateAction.cs
- smtpconnection.cs
- HandlerMappingMemo.cs
- AppModelKnownContentFactory.cs
- WindowAutomationPeer.cs
- ContextBase.cs
- SafeCoTaskMem.cs
- FieldNameLookup.cs
- PasswordBoxAutomationPeer.cs
- RuleInfoComparer.cs
- AdornerPresentationContext.cs
- MessageTraceRecord.cs
- AutomationPattern.cs
- CookielessHelper.cs
- MatchAttribute.cs
- PTUtility.cs
- EnumDataContract.cs
- ButtonBaseAutomationPeer.cs
- BinaryNode.cs
- UnauthorizedWebPart.cs
- ReadOnlyDictionary.cs
- FontSizeConverter.cs
- KnownTypes.cs
- Manipulation.cs
- XmlElement.cs
- AsymmetricKeyExchangeFormatter.cs
- documentsequencetextpointer.cs
- DbMetaDataCollectionNames.cs
- StylusTip.cs
- xml.cs
- CapabilitiesPattern.cs
- PtsPage.cs
- CommandHelper.cs
- BasicExpandProvider.cs
- HttpCookieCollection.cs
- XmlSchemaGroup.cs
- _SslStream.cs
- SmiSettersStream.cs
- TextSyndicationContent.cs
- UnsafeNativeMethods.cs
- DbModificationClause.cs
- ImageAttributes.cs
- Page.cs
- ParallelTimeline.cs
- GeneralTransformGroup.cs
- SignatureHelper.cs
- DateRangeEvent.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- BitmapEffectInput.cs
- DataRowView.cs
- DbProviderFactory.cs
- XmlSchemaAnnotation.cs
- AssignDesigner.xaml.cs
- StylusCaptureWithinProperty.cs
- OutputCacheModule.cs