Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx35 / System.WorkflowServices / System / Workflow / ComponentModel / Design / FindSimilarActivitiesVerb.cs / 1305376 / FindSimilarActivitiesVerb.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.Workflow.ComponentModel.Design { using System; using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.Design; using System.Runtime; using System.ServiceModel; using System.Workflow.ComponentModel; //// This the the class that implements the Search by menu item displayed on the activityDesigner // this is responsible for finding the matching activity designers and displaying them using // the acticvitydesigner hightlighter. // internal class FindSimilarActivitiesVerb: ActivityDesignerVerb where TActivity : Activity { List matchingActivityDesigner; ActivityComparer matchMaker; ActivityDesigner owner; public FindSimilarActivitiesVerb(ActivityDesigner designer, ActivityComparer matchMaker, string displayText) : base(designer, DesignerVerbGroup.Misc, displayText, new EventHandler(OnInvoke)) { Fx.Assert(designer != null, "Received null for designer parameter to FindSimilarActivitiesVerb ctor."); Fx.Assert(matchMaker != null, "Received null for matchMaker parameter to FindSimilarActivitiesVerb ctor."); this.owner = designer; this.matchMaker = matchMaker; } private static void OnInvoke(object source, EventArgs e) { FindSimilarActivitiesVerb designerVerb = source as FindSimilarActivitiesVerb ; ActivityDesigner activityDesigner = designerVerb.owner; List highlightedDesigners = designerVerb.GetMatchingActivityDesigners(activityDesigner); ActivityDesignerHighlighter hightlighter = new ActivityDesignerHighlighter(activityDesigner); hightlighter.Highlight(highlightedDesigners); } private ActivityDesigner GetDesigner(Activity activity) { IDesignerHost designerHost = this.GetService(typeof(IDesignerHost)) as IDesignerHost; return designerHost.GetDesigner(activity as IComponent) as ActivityDesigner; } private List GetMatchingActivityDesigners(ActivityDesigner activityDesigner) { CompositeActivityDesigner rootDesigner = DesignerPainter.GetRootDesigner(activityDesigner); matchingActivityDesigner = new List (); Walker activityTreeWalker = new Walker(); activityTreeWalker.FoundActivity += new WalkerEventHandler(OnWalkerFoundActivity); activityTreeWalker.Walk(rootDesigner.Activity); return matchingActivityDesigner; } private object GetService(Type serviceType) { if (serviceType == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("serviceType"); } if (owner.Activity != null && owner.Activity.Site != null) { return owner.Activity.Site.GetService(serviceType); } else { return null; } } private void OnWalkerFoundActivity(Walker walker, WalkerEventArgs eventArgs) { TActivity foundActivity = eventArgs.CurrentActivity as TActivity; if (foundActivity != null) { if (this.matchMaker((TActivity) owner.Activity, foundActivity)) { matchingActivityDesigner.Add(GetDesigner(eventArgs.CurrentActivity)); } } } } } // 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
- XmlAttributeHolder.cs
- ScalarOps.cs
- ReflectionServiceProvider.cs
- DataContractJsonSerializerOperationBehavior.cs
- CodeTypeMemberCollection.cs
- LineServicesRun.cs
- WindowsEditBoxRange.cs
- WebBodyFormatMessageProperty.cs
- CheckoutException.cs
- ExpressionPrinter.cs
- CellCreator.cs
- SkewTransform.cs
- entityreference_tresulttype.cs
- RowParagraph.cs
- PropertyPathWorker.cs
- LinkUtilities.cs
- Registry.cs
- HyperLinkField.cs
- CollectionType.cs
- CmsInterop.cs
- DataBindingExpressionBuilder.cs
- CommonDialog.cs
- SortKey.cs
- XmlSchemaAppInfo.cs
- CryptoSession.cs
- HMAC.cs
- EdmPropertyAttribute.cs
- XsdValidatingReader.cs
- ToolBarOverflowPanel.cs
- SiteMapDataSource.cs
- ChangePassword.cs
- RelatedView.cs
- ServiceProviders.cs
- Run.cs
- UIElement3D.cs
- TextDecorationCollection.cs
- RecordsAffectedEventArgs.cs
- TimeSpanConverter.cs
- propertyentry.cs
- ZipFileInfoCollection.cs
- SqlProcedureAttribute.cs
- TraceHandler.cs
- SlipBehavior.cs
- TableRowGroup.cs
- BuilderPropertyEntry.cs
- InsufficientMemoryException.cs
- CodeAttributeArgumentCollection.cs
- ContextStack.cs
- OptimalTextSource.cs
- KeyInterop.cs
- WindowsSolidBrush.cs
- XPathException.cs
- PasswordRecovery.cs
- __ConsoleStream.cs
- ClipboardProcessor.cs
- HttpWriter.cs
- EventMappingSettings.cs
- ViewRendering.cs
- ObjectDataSourceFilteringEventArgs.cs
- configsystem.cs
- ControlIdConverter.cs
- EventWaitHandle.cs
- ProcessInputEventArgs.cs
- MemberAccessException.cs
- LazyTextWriterCreator.cs
- TextAdaptor.cs
- XmlnsCache.cs
- InheritanceUI.cs
- MultiByteCodec.cs
- TextRenderingModeValidation.cs
- ApplicationServicesHostFactory.cs
- ExpressionConverter.cs
- GlyphCollection.cs
- _WinHttpWebProxyDataBuilder.cs
- XmlUtil.cs
- VectorValueSerializer.cs
- ComponentCollection.cs
- XmlObjectSerializerWriteContextComplex.cs
- EmptyEnumerable.cs
- Size.cs
- FontSizeConverter.cs
- ModuleConfigurationInfo.cs
- CustomWebEventKey.cs
- VariableModifiersHelper.cs
- SimpleTypesSurrogate.cs
- ConnectionModeReader.cs
- QueryCacheKey.cs
- SByteConverter.cs
- RemotingConfigParser.cs
- ToolStripItemRenderEventArgs.cs
- QilTypeChecker.cs
- ListControlConvertEventArgs.cs
- OleDbReferenceCollection.cs
- SqlClientWrapperSmiStreamChars.cs
- UrlMappingsSection.cs
- XmlHierarchicalEnumerable.cs
- MasterPageParser.cs
- ProtocolViolationException.cs
- ToolStripContentPanelRenderEventArgs.cs
- NextPreviousPagerField.cs