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
- BinaryReader.cs
- LinkedList.cs
- ListMarkerSourceInfo.cs
- BitmapEffectGeneralTransform.cs
- XmlQueryContext.cs
- Version.cs
- ScopeElement.cs
- ConfigurationSettings.cs
- Message.cs
- ConfigXmlAttribute.cs
- LogPolicy.cs
- Set.cs
- RegexCharClass.cs
- MergablePropertyAttribute.cs
- ComEventsHelper.cs
- TextEndOfParagraph.cs
- XmlUtf8RawTextWriter.cs
- ActivityValidationServices.cs
- SymDocumentType.cs
- Pkcs7Signer.cs
- FixedPage.cs
- ViewGenerator.cs
- NameValueCollection.cs
- AssemblyInfo.cs
- Keyboard.cs
- JapaneseLunisolarCalendar.cs
- FrameworkContextData.cs
- PropertyValueChangedEvent.cs
- TraceListener.cs
- ExecutionEngineException.cs
- ImageAttributes.cs
- unsafenativemethodsother.cs
- OleDbMetaDataFactory.cs
- AdCreatedEventArgs.cs
- EntityKey.cs
- CodeRegionDirective.cs
- GifBitmapDecoder.cs
- SafeFileHandle.cs
- JumpTask.cs
- WebHttpDispatchOperationSelector.cs
- ListItemConverter.cs
- WrappedIUnknown.cs
- RootBrowserWindowProxy.cs
- DataListItemEventArgs.cs
- ServiceDescriptionSerializer.cs
- EventLogReader.cs
- FigureHelper.cs
- Compiler.cs
- Transform3D.cs
- HttpServerProtocol.cs
- XsltException.cs
- ApplicationHost.cs
- SimpleLine.cs
- MethodSignatureGenerator.cs
- StructuredTypeEmitter.cs
- FormatException.cs
- ChannelManager.cs
- ElementProxy.cs
- SafeLibraryHandle.cs
- DirectoryGroupQuery.cs
- ProfileBuildProvider.cs
- SecurityPolicySection.cs
- DataGridViewColumnHeaderCell.cs
- SafeSecurityHelper.cs
- SequenceDesigner.cs
- ValidationRuleCollection.cs
- UnsupportedPolicyOptionsException.cs
- OdbcParameter.cs
- Events.cs
- CommonDialog.cs
- SyndicationContent.cs
- EdgeProfileValidation.cs
- CloseCollectionAsyncResult.cs
- ASCIIEncoding.cs
- ItemCheckedEvent.cs
- TextRangeSerialization.cs
- TypeUsageBuilder.cs
- CoreChannel.cs
- __Filters.cs
- CompilerErrorCollection.cs
- SvcMapFile.cs
- ASCIIEncoding.cs
- ObjectIDGenerator.cs
- XmlWriterTraceListener.cs
- ConfigXmlCDataSection.cs
- OrderedParallelQuery.cs
- EntityDataSourceContextCreatedEventArgs.cs
- ListBoxItemWrapperAutomationPeer.cs
- HMACSHA384.cs
- ModelPropertyImpl.cs
- PackageStore.cs
- BinaryMessageEncoder.cs
- FillRuleValidation.cs
- RolePrincipal.cs
- MissingSatelliteAssemblyException.cs
- PathSegmentCollection.cs
- DataErrorValidationRule.cs
- LogRestartAreaEnumerator.cs
- Mapping.cs
- CaseCqlBlock.cs