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
- BehaviorEditorPart.cs
- ToolStripDropTargetManager.cs
- WebPartMovingEventArgs.cs
- SoapReflectionImporter.cs
- DataGridRow.cs
- FormatterConverter.cs
- MobileTemplatedControlDesigner.cs
- BitmapEffectDrawingContextState.cs
- TemplatePartAttribute.cs
- LoadRetryConstantStrategy.cs
- ProviderCommandInfoUtils.cs
- Serializer.cs
- SessionSwitchEventArgs.cs
- AppDomainFactory.cs
- NotifyParentPropertyAttribute.cs
- LastQueryOperator.cs
- wgx_sdk_version.cs
- StylusLogic.cs
- BitmapEffectvisualstate.cs
- HandleScope.cs
- DbDataSourceEnumerator.cs
- TextElementEnumerator.cs
- DataSourceConverter.cs
- XhtmlBasicPhoneCallAdapter.cs
- AgileSafeNativeMemoryHandle.cs
- TraceProvider.cs
- XmlBinaryReader.cs
- KnownColorTable.cs
- TreeNodeBinding.cs
- Localizer.cs
- ModulesEntry.cs
- DistinctQueryOperator.cs
- Padding.cs
- _BasicClient.cs
- XPathSelectionIterator.cs
- XsltFunctions.cs
- ApplicationSecurityInfo.cs
- RequestNavigateEventArgs.cs
- TreeNodeBindingDepthConverter.cs
- ClrProviderManifest.cs
- TextEffectResolver.cs
- HttpRequest.cs
- Object.cs
- AxParameterData.cs
- HandledMouseEvent.cs
- Authorization.cs
- BamlRecordReader.cs
- HttpDictionary.cs
- RuntimeComponentFilter.cs
- httpserverutility.cs
- ContentHostHelper.cs
- DataSourceHelper.cs
- CaretElement.cs
- ValidationErrorCollection.cs
- PublisherIdentityPermission.cs
- DbConnectionPoolIdentity.cs
- Gdiplus.cs
- GPRECT.cs
- DiagnosticTrace.cs
- IdnMapping.cs
- MarshalByValueComponent.cs
- _BaseOverlappedAsyncResult.cs
- PolygonHotSpot.cs
- HttpFileCollectionBase.cs
- x509utils.cs
- DllHostedComPlusServiceHost.cs
- KnownIds.cs
- RawTextInputReport.cs
- ObjectMemberMapping.cs
- GlobalItem.cs
- AccessDataSource.cs
- HttpUnhandledOperationInvoker.cs
- SapiRecoInterop.cs
- AssemblyBuilder.cs
- InternalControlCollection.cs
- ConfigurationSchemaErrors.cs
- GrammarBuilderBase.cs
- PolygonHotSpot.cs
- BindingContext.cs
- ReflectPropertyDescriptor.cs
- GridSplitter.cs
- EncoderNLS.cs
- SparseMemoryStream.cs
- InheritanceContextChangedEventManager.cs
- securitycriticaldata.cs
- WebPartChrome.cs
- TextWriterTraceListener.cs
- PropertyItem.cs
- GridViewUpdatedEventArgs.cs
- LockingPersistenceProvider.cs
- FixedTextBuilder.cs
- Expr.cs
- EntitySqlQueryState.cs
- XmlProcessingInstruction.cs
- ProxyWebPart.cs
- CultureSpecificStringDictionary.cs
- NameValuePermission.cs
- SystemIPInterfaceProperties.cs
- MatchNoneMessageFilter.cs
- SmiRecordBuffer.cs