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
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- SafeArrayRankMismatchException.cs
- SqlFormatter.cs
- ObjectViewFactory.cs
- AnnotationHighlightLayer.cs
- Freezable.cs
- Html32TextWriter.cs
- ObjectStateEntryDbDataRecord.cs
- MenuAutomationPeer.cs
- DataSourceProvider.cs
- TextModifier.cs
- ValueProviderWrapper.cs
- ECDiffieHellmanCng.cs
- ProfessionalColorTable.cs
- OpenTypeLayoutCache.cs
- DataBindingExpressionBuilder.cs
- FrameworkContextData.cs
- ExtenderControl.cs
- XmlSignatureProperties.cs
- CompiledQueryCacheEntry.cs
- WmlPanelAdapter.cs
- SqlNotificationRequest.cs
- ApplicationFileParser.cs
- HtmlFormAdapter.cs
- ResourceProperty.cs
- ProviderConnectionPointCollection.cs
- SystemMulticastIPAddressInformation.cs
- Empty.cs
- SecurityContext.cs
- SubstitutionList.cs
- SortedDictionary.cs
- WeakHashtable.cs
- HttpBufferlessInputStream.cs
- ActiveXSite.cs
- RegularExpressionValidator.cs
- LinkButton.cs
- HtmlInputControl.cs
- WebPartDescriptionCollection.cs
- JoinSymbol.cs
- SmiGettersStream.cs
- PrintDocument.cs
- StylusPointProperty.cs
- ChtmlPhoneCallAdapter.cs
- WebZone.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- DebugView.cs
- XmlSchemaParticle.cs
- DependencyPropertyKey.cs
- ComplexLine.cs
- OracleTimeSpan.cs
- XmlSerializationReader.cs
- SchemaInfo.cs
- AxisAngleRotation3D.cs
- LoginAutoFormat.cs
- BasePropertyDescriptor.cs
- ClaimSet.cs
- XsltArgumentList.cs
- BitmapEncoder.cs
- RepeaterItemCollection.cs
- AutomationIdentifier.cs
- WindowInteropHelper.cs
- CollectionView.cs
- OdbcConnectionOpen.cs
- ToolStripMenuItem.cs
- FuncTypeConverter.cs
- GC.cs
- DSASignatureDeformatter.cs
- PathParser.cs
- DispatcherSynchronizationContext.cs
- DependencyObjectProvider.cs
- ReaderContextStackData.cs
- TypeExtension.cs
- UserControlAutomationPeer.cs
- BoundConstants.cs
- BitmapSourceSafeMILHandle.cs
- ButtonField.cs
- DrawListViewColumnHeaderEventArgs.cs
- DragDeltaEventArgs.cs
- Event.cs
- RuntimeConfigurationRecord.cs
- ServiceDebugElement.cs
- ISFTagAndGuidCache.cs
- ContainerVisual.cs
- QilNode.cs
- DrawingVisualDrawingContext.cs
- Int32Rect.cs
- ThreadAbortException.cs
- CommandHelpers.cs
- PageFunction.cs
- SoapExtensionImporter.cs
- SmtpNtlmAuthenticationModule.cs
- COM2Enum.cs
- X509CertificateClaimSet.cs
- TextAnchor.cs
- SqlFileStream.cs
- TextModifier.cs
- PrintEvent.cs
- XmlNotation.cs
- DesignerVerbCollection.cs
- EmbeddedObject.cs