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
- TransformerInfo.cs
- OperationCanceledException.cs
- UITypeEditors.cs
- TraceContext.cs
- TemplatedWizardStep.cs
- UserThread.cs
- ToolStripDesignerAvailabilityAttribute.cs
- PrintDocument.cs
- WindowsSysHeader.cs
- OleDbDataReader.cs
- SamlAuthorizationDecisionStatement.cs
- ProtocolsConfiguration.cs
- ConfigsHelper.cs
- HasCopySemanticsAttribute.cs
- DescendantOverDescendantQuery.cs
- EventToken.cs
- TextLineBreak.cs
- WebBrowserNavigatedEventHandler.cs
- LayoutEngine.cs
- ItemsPresenter.cs
- VisualStyleTypesAndProperties.cs
- ListItemCollection.cs
- xmlglyphRunInfo.cs
- StaticDataManager.cs
- SpellerHighlightLayer.cs
- ToolStripArrowRenderEventArgs.cs
- HttpConfigurationContext.cs
- DataContractSet.cs
- EventData.cs
- XslCompiledTransform.cs
- ClientOperationFormatterProvider.cs
- ExtensionSimplifierMarkupObject.cs
- UnsafeNativeMethodsTablet.cs
- GridErrorDlg.cs
- TextSelection.cs
- ParameterElement.cs
- LongValidatorAttribute.cs
- InternalsVisibleToAttribute.cs
- TypeGeneratedEventArgs.cs
- ExpandoObject.cs
- GeometryConverter.cs
- DefaultProfileManager.cs
- WaveHeader.cs
- BitmapCodecInfoInternal.cs
- PeerObject.cs
- XamlClipboardData.cs
- DrawingServices.cs
- PackagePartCollection.cs
- PermissionSet.cs
- DragDeltaEventArgs.cs
- IndexedString.cs
- WCFServiceClientProxyGenerator.cs
- PreservationFileWriter.cs
- HelpInfo.cs
- SearchExpression.cs
- DbException.cs
- COM2IDispatchConverter.cs
- ParentQuery.cs
- ExitEventArgs.cs
- FuncTypeConverter.cs
- TabItemWrapperAutomationPeer.cs
- SafeNativeMethods.cs
- XPathScanner.cs
- SettingsAttributeDictionary.cs
- DataGridCommandEventArgs.cs
- TextSpan.cs
- BinaryFormatterSinks.cs
- ApplicationInterop.cs
- ValuePattern.cs
- ListControl.cs
- SqlComparer.cs
- SqlUserDefinedAggregateAttribute.cs
- RunWorkerCompletedEventArgs.cs
- PackageRelationshipSelector.cs
- HttpTransportBindingElement.cs
- FrameworkElementAutomationPeer.cs
- AuthenticateEventArgs.cs
- ImportContext.cs
- MultiDataTrigger.cs
- ProviderBase.cs
- CharStorage.cs
- RequiredFieldValidator.cs
- NameTable.cs
- SmtpClient.cs
- CaseInsensitiveComparer.cs
- AsymmetricAlgorithm.cs
- SerializableTypeCodeDomSerializer.cs
- InstanceDataCollection.cs
- TabControl.cs
- HostedElements.cs
- MobileTextWriter.cs
- InstanceValue.cs
- OdbcUtils.cs
- UpdatePanelTrigger.cs
- _FtpDataStream.cs
- TextSpanModifier.cs
- CodeExporter.cs
- DbConnectionInternal.cs
- StyleCollectionEditor.cs
- Debug.cs