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
- HttpValueCollection.cs
- XmlAttribute.cs
- _ConnectOverlappedAsyncResult.cs
- WebPartEditorOkVerb.cs
- ScriptingSectionGroup.cs
- SimpleWorkerRequest.cs
- versioninfo.cs
- XmlAttributeAttribute.cs
- ContextMenu.cs
- ReadOnlyHierarchicalDataSource.cs
- WebBrowserProgressChangedEventHandler.cs
- PreDigestedSignedInfo.cs
- SQLByteStorage.cs
- CompositeCollection.cs
- PatternMatcher.cs
- CommunicationObjectFaultedException.cs
- ErrorHandler.cs
- ManagementObjectCollection.cs
- DSASignatureFormatter.cs
- WorkerRequest.cs
- XamlSerializerUtil.cs
- SimpleLine.cs
- DebugHandleTracker.cs
- MultiView.cs
- MetadataArtifactLoaderComposite.cs
- WebCategoryAttribute.cs
- Soap.cs
- WebBrowserNavigatedEventHandler.cs
- CodeMemberEvent.cs
- InlineUIContainer.cs
- CorrelationScope.cs
- DbException.cs
- CodeDomConfigurationHandler.cs
- DefaultEventAttribute.cs
- AccessKeyManager.cs
- DbProviderFactories.cs
- ProgramNode.cs
- CreatingCookieEventArgs.cs
- CallbackValidator.cs
- MailAddressCollection.cs
- GenericWebPart.cs
- TabControlDesigner.cs
- PrimaryKeyTypeConverter.cs
- InitializerFacet.cs
- TickBar.cs
- WebReferencesBuildProvider.cs
- PbrsForward.cs
- ActivityMetadata.cs
- DataGridRow.cs
- AdornerHitTestResult.cs
- MobileTextWriter.cs
- WsrmTraceRecord.cs
- ProviderUtil.cs
- StringArrayConverter.cs
- StrokeSerializer.cs
- _FixedSizeReader.cs
- RegisteredScript.cs
- EntityViewGenerator.cs
- TraceContextEventArgs.cs
- SpotLight.cs
- PenContexts.cs
- XmlSerializerAssemblyAttribute.cs
- OperationInfo.cs
- CreateRefExpr.cs
- SqlDataSourceCommandParser.cs
- Renderer.cs
- PipelineModuleStepContainer.cs
- FacetValues.cs
- X509ScopedServiceCertificateElement.cs
- HealthMonitoringSection.cs
- DataGridComponentEditor.cs
- filewebresponse.cs
- Contracts.cs
- NamespaceList.cs
- SoapHeaderAttribute.cs
- _ConnectStream.cs
- DbConnectionPool.cs
- ProviderException.cs
- DocumentPageTextView.cs
- ListDictionaryInternal.cs
- TreeNodeCollectionEditor.cs
- BroadcastEventHelper.cs
- X509Utils.cs
- Camera.cs
- LinqExpressionNormalizer.cs
- Decorator.cs
- HttpCacheVary.cs
- AddInToken.cs
- CommandValueSerializer.cs
- SchemaElement.cs
- DataGridViewCellEventArgs.cs
- DataGridViewColumnConverter.cs
- SHA512.cs
- OleDbCommandBuilder.cs
- UIElementPropertyUndoUnit.cs
- Boolean.cs
- RowBinding.cs
- PenThreadWorker.cs
- ExpressionConverter.cs
- SingleObjectCollection.cs