Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DeviceContext2.cs
- BinaryConverter.cs
- PageCache.cs
- __Filters.cs
- InvalidWMPVersionException.cs
- QuadraticBezierSegment.cs
- CellTreeNode.cs
- MultiSelector.cs
- NavigationPropertyEmitter.cs
- WebPartConnectionsEventArgs.cs
- Range.cs
- DataGridViewAdvancedBorderStyle.cs
- JsonStringDataContract.cs
- FlowDocumentScrollViewer.cs
- ToolStripContentPanelDesigner.cs
- StructuredType.cs
- FilteredAttributeCollection.cs
- ToolStripScrollButton.cs
- TreeNodeEventArgs.cs
- GlyphElement.cs
- ImageClickEventArgs.cs
- FunctionNode.cs
- FixedSOMElement.cs
- TCPListener.cs
- ExternalCalls.cs
- HtmlTextArea.cs
- SqlDependencyListener.cs
- ConfigurationElementCollection.cs
- BinaryParser.cs
- Scheduler.cs
- GrammarBuilderPhrase.cs
- ByteStream.cs
- ArraySortHelper.cs
- RNGCryptoServiceProvider.cs
- FieldTemplateFactory.cs
- ControlAdapter.cs
- ToggleButtonAutomationPeer.cs
- Parameter.cs
- Msec.cs
- Delegate.cs
- BitConverter.cs
- ExecutedRoutedEventArgs.cs
- SplashScreen.cs
- SliderAutomationPeer.cs
- ControlBuilder.cs
- AutomationProperties.cs
- DCSafeHandle.cs
- HijriCalendar.cs
- CodeCommentStatementCollection.cs
- DataGridItemEventArgs.cs
- EditorPartCollection.cs
- followingquery.cs
- QueryableDataSourceEditData.cs
- LoginView.cs
- LifetimeServices.cs
- InternalUserCancelledException.cs
- ECDiffieHellmanCng.cs
- EventLog.cs
- ByteStack.cs
- CachedCompositeFamily.cs
- SimpleBitVector32.cs
- SoapClientProtocol.cs
- TreeNodeConverter.cs
- ScrollProviderWrapper.cs
- ConfigurationStrings.cs
- ColorAnimationBase.cs
- DataRowCollection.cs
- TableRowCollection.cs
- DataControlPagerLinkButton.cs
- SelectionPattern.cs
- XmlDataImplementation.cs
- Literal.cs
- DescendantOverDescendantQuery.cs
- FloaterBaseParaClient.cs
- DrawListViewColumnHeaderEventArgs.cs
- SqlDataSourceFilteringEventArgs.cs
- Configuration.cs
- GridViewRowPresenter.cs
- CharStorage.cs
- _Events.cs
- HttpBufferlessInputStream.cs
- WpfWebRequestHelper.cs
- XPathDescendantIterator.cs
- BezierSegment.cs
- mediapermission.cs
- OutOfProcStateClientManager.cs
- _Connection.cs
- File.cs
- SyndicationSerializer.cs
- BooleanFunctions.cs
- ArgIterator.cs
- MgmtConfigurationRecord.cs
- WindowsToolbarAsMenu.cs
- BindingContext.cs
- NamespaceDecl.cs
- GrammarBuilder.cs
- NativeMethods.cs
- UnsafeNativeMethods.cs
- TypeConverter.cs
- Point.cs