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
- DBSchemaRow.cs
- SmiGettersStream.cs
- ReflectionUtil.cs
- ParsedAttributeCollection.cs
- TemplateInstanceAttribute.cs
- ColumnWidthChangingEvent.cs
- GridViewRowEventArgs.cs
- ButtonBaseAdapter.cs
- OleDbWrapper.cs
- MemberPath.cs
- Compensate.cs
- HMACRIPEMD160.cs
- ListBindingConverter.cs
- DataPagerFieldCollection.cs
- DeclarativeExpressionConditionDeclaration.cs
- XmlIlVisitor.cs
- ScriptModule.cs
- ClipboardData.cs
- URLMembershipCondition.cs
- ExternalCalls.cs
- MaskedTextBox.cs
- RuntimeResourceSet.cs
- Command.cs
- StreamReader.cs
- MachineKeySection.cs
- PageBuildProvider.cs
- CLSCompliantAttribute.cs
- RoutingChannelExtension.cs
- WorkerRequest.cs
- Select.cs
- XmlDeclaration.cs
- XdrBuilder.cs
- ListControlBoundActionList.cs
- HandledEventArgs.cs
- PropertyInformation.cs
- KeyedCollection.cs
- ImportContext.cs
- InputScopeAttribute.cs
- TableLayoutPanel.cs
- DataGrid.cs
- PartialTrustValidationBehavior.cs
- CollectionsUtil.cs
- SecurityAttributeGenerationHelper.cs
- HitTestResult.cs
- PeerNameRecordCollection.cs
- CompilerErrorCollection.cs
- AttributeData.cs
- ScalarType.cs
- XmlException.cs
- ButtonField.cs
- FontStretchConverter.cs
- CodeSnippetCompileUnit.cs
- XmlCountingReader.cs
- KeyValuePairs.cs
- PeerResolver.cs
- SystemResourceHost.cs
- ToolStripSplitButton.cs
- DiagnosticsConfigurationHandler.cs
- TreeViewDataItemAutomationPeer.cs
- MasterPage.cs
- DesignerPerfEventProvider.cs
- SHA1.cs
- LinkTarget.cs
- RangeValidator.cs
- XmlNullResolver.cs
- FtpWebResponse.cs
- XmlTypeMapping.cs
- ServiceHostingEnvironment.cs
- VisualStyleRenderer.cs
- PointLightBase.cs
- TableSectionStyle.cs
- MemberProjectedSlot.cs
- Hex.cs
- MouseGesture.cs
- SafeProcessHandle.cs
- QueryMatcher.cs
- MembershipUser.cs
- ResourceType.cs
- ConditionalDesigner.cs
- AdjustableArrowCap.cs
- TemplateInstanceAttribute.cs
- Profiler.cs
- activationcontext.cs
- ButtonBaseAdapter.cs
- Padding.cs
- TypeToArgumentTypeConverter.cs
- HtmlHead.cs
- CodeSnippetCompileUnit.cs
- xamlnodes.cs
- SQLBytes.cs
- ExplicitDiscriminatorMap.cs
- TemplatePagerField.cs
- TreeNodeSelectionProcessor.cs
- WhitespaceRuleReader.cs
- Comparer.cs
- TaskExtensions.cs
- TdsParserStaticMethods.cs
- DelayLoadType.cs
- OutputScopeManager.cs
- PolicyException.cs