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
- LinqDataSourceUpdateEventArgs.cs
- ListViewDeleteEventArgs.cs
- CalloutQueueItem.cs
- FaultContractInfo.cs
- MsmqAppDomainProtocolHandler.cs
- ObjectStateEntryDbDataRecord.cs
- DialogResultConverter.cs
- PeerToPeerException.cs
- RowParagraph.cs
- configsystem.cs
- ElementAction.cs
- JulianCalendar.cs
- DateTimeParse.cs
- NavigationPropertySingletonExpression.cs
- TreeWalkHelper.cs
- SafePointer.cs
- CssClassPropertyAttribute.cs
- LinqDataSourceUpdateEventArgs.cs
- SingleObjectCollection.cs
- SplitterEvent.cs
- TranslateTransform.cs
- ExpandCollapseProviderWrapper.cs
- WebPartTransformer.cs
- SoapFault.cs
- MsmqElementBase.cs
- WebPartDescription.cs
- ScrollEvent.cs
- mansign.cs
- OptimisticConcurrencyException.cs
- CoTaskMemHandle.cs
- ExclusiveCanonicalizationTransform.cs
- CookieProtection.cs
- ErrorStyle.cs
- ProjectedSlot.cs
- Compiler.cs
- ToolConsole.cs
- DependsOnAttribute.cs
- PrintingPermission.cs
- EditingCoordinator.cs
- EnumBuilder.cs
- ChannelSinkStacks.cs
- XmlDeclaration.cs
- ColorContextHelper.cs
- WaitHandleCannotBeOpenedException.cs
- _RequestCacheProtocol.cs
- ColumnWidthChangingEvent.cs
- TileBrush.cs
- DesignerTransaction.cs
- XsdBuilder.cs
- TaiwanLunisolarCalendar.cs
- MappingException.cs
- ImageListImage.cs
- NullToBooleanConverter.cs
- RetrieveVirtualItemEventArgs.cs
- InputBinder.cs
- SerialReceived.cs
- MsdtcWrapper.cs
- EdmType.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- ComponentChangedEvent.cs
- TransformPattern.cs
- Adorner.cs
- LinkedResource.cs
- GifBitmapEncoder.cs
- PixelFormatConverter.cs
- ADConnectionHelper.cs
- AddInControllerImpl.cs
- HttpVersion.cs
- CodeDomComponentSerializationService.cs
- Translator.cs
- IntPtr.cs
- HyperLinkColumn.cs
- WebPartPersonalization.cs
- StorageInfo.cs
- FilterableAttribute.cs
- XmlSignificantWhitespace.cs
- SplineKeyFrames.cs
- MappingItemCollection.cs
- BidOverLoads.cs
- SiteOfOriginPart.cs
- ChtmlMobileTextWriter.cs
- XmlDownloadManager.cs
- KeyedCollection.cs
- AttachedAnnotation.cs
- StickyNoteAnnotations.cs
- InputLangChangeEvent.cs
- Activator.cs
- mediapermission.cs
- RadioButtonList.cs
- Int32RectConverter.cs
- PartialCachingControl.cs
- SequenceRangeCollection.cs
- TaskFactory.cs
- LongMinMaxAggregationOperator.cs
- UIPropertyMetadata.cs
- RegisteredExpandoAttribute.cs
- PrincipalPermission.cs
- LinqDataView.cs
- TypeNameConverter.cs
- HotCommands.cs