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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Attribute.cs
- SendActivity.cs
- DbConnectionPoolGroupProviderInfo.cs
- CrossSiteScriptingValidation.cs
- RootBuilder.cs
- RemoteWebConfigurationHost.cs
- SortExpressionBuilder.cs
- CredentialManagerDialog.cs
- MsmqProcessProtocolHandler.cs
- ErrorWrapper.cs
- _IPv6Address.cs
- SettingsSection.cs
- ProcessModuleCollection.cs
- WebServiceTypeData.cs
- HtmlTable.cs
- DocumentPageHost.cs
- Encoder.cs
- RuntimeCompatibilityAttribute.cs
- PageBuildProvider.cs
- TransactionScope.cs
- StylusPointPropertyInfo.cs
- Rss20FeedFormatter.cs
- ApplicationHost.cs
- CodeIdentifier.cs
- TimeSpan.cs
- OleDbMetaDataFactory.cs
- ObjectDataProvider.cs
- AutoGeneratedField.cs
- UniqueConstraint.cs
- EventLogPermissionEntryCollection.cs
- BinaryWriter.cs
- ProfileBuildProvider.cs
- InheritanceContextHelper.cs
- ConstraintManager.cs
- XsltLoader.cs
- PersonalizationProviderHelper.cs
- WindowsFormsHelpers.cs
- DataPagerCommandEventArgs.cs
- TailPinnedEventArgs.cs
- ObjectPersistData.cs
- PropertyChangedEventArgs.cs
- StylusPlugin.cs
- PointF.cs
- ExpressionVisitor.cs
- EventSetter.cs
- HiddenField.cs
- SelectionService.cs
- MethodRental.cs
- CodeNamespaceCollection.cs
- AddInStore.cs
- BlockingCollection.cs
- Operators.cs
- CodeGroup.cs
- DataServiceEntityAttribute.cs
- AttachmentCollection.cs
- WindowsHyperlink.cs
- mda.cs
- Route.cs
- DnsEndPoint.cs
- OpCodes.cs
- Tuple.cs
- MsmqIntegrationBindingCollectionElement.cs
- formatter.cs
- ReadOnlyDataSourceView.cs
- DetailsViewCommandEventArgs.cs
- WindowsGraphics.cs
- HwndSourceKeyboardInputSite.cs
- BaseValidatorDesigner.cs
- DbProviderConfigurationHandler.cs
- DrawingContextWalker.cs
- AttributeAction.cs
- fixedPageContentExtractor.cs
- EditorZone.cs
- WebControlAdapter.cs
- CqlIdentifiers.cs
- MultiBinding.cs
- ColumnReorderedEventArgs.cs
- PhysicalOps.cs
- GridItem.cs
- TreeNodeStyleCollection.cs
- RegularExpressionValidator.cs
- SortDescription.cs
- BroadcastEventHelper.cs
- HwndSourceKeyboardInputSite.cs
- XmlHierarchicalDataSourceView.cs
- EnumValAlphaComparer.cs
- RequestCacheManager.cs
- LinkAreaEditor.cs
- IPGlobalProperties.cs
- PropertySegmentSerializationProvider.cs
- MetadataCache.cs
- DbMetaDataFactory.cs
- ViewGenResults.cs
- DrawingAttributeSerializer.cs
- AtomMaterializerLog.cs
- WindowsNonControl.cs
- XmlChildNodes.cs
- ErrorWebPart.cs
- EnlistmentTraceIdentifier.cs
- EdmFunctions.cs