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
- ExternalFile.cs
- GenericsInstances.cs
- TypeUnloadedException.cs
- EdmProperty.cs
- GenericFlowSwitchHelper.cs
- DataBindingHandlerAttribute.cs
- Point3DValueSerializer.cs
- OptimizedTemplateContent.cs
- X509Utils.cs
- PinnedBufferMemoryStream.cs
- BooleanAnimationUsingKeyFrames.cs
- FunctionQuery.cs
- TypeSystem.cs
- CornerRadius.cs
- MaterialCollection.cs
- GraphicsState.cs
- DurableDispatcherAddressingFault.cs
- Trustee.cs
- DragStartedEventArgs.cs
- IriParsingElement.cs
- MergeFailedEvent.cs
- CodeTypeMember.cs
- BitHelper.cs
- XmlConvert.cs
- Transform3DCollection.cs
- XamlReaderHelper.cs
- VectorCollection.cs
- FixedDocument.cs
- SQLBytes.cs
- EventLogEntry.cs
- ReaderContextStackData.cs
- ClientSettingsSection.cs
- Propagator.Evaluator.cs
- TextRunCache.cs
- RefreshEventArgs.cs
- ParameterSubsegment.cs
- DataGridTextColumn.cs
- DefaultBindingPropertyAttribute.cs
- Matrix3D.cs
- ContainerUtilities.cs
- DbSource.cs
- RegionIterator.cs
- RoutedCommand.cs
- FeatureSupport.cs
- WebScriptEnablingBehavior.cs
- FormsIdentity.cs
- MinimizableAttributeTypeConverter.cs
- SubMenuStyle.cs
- FormViewCommandEventArgs.cs
- DependencySource.cs
- SystemFonts.cs
- SqlMetaData.cs
- MDIControlStrip.cs
- HighlightComponent.cs
- HttpProfileGroupBase.cs
- SecurityManager.cs
- DirectoryInfo.cs
- Catch.cs
- SettingsBase.cs
- LabelDesigner.cs
- WindowsListViewGroup.cs
- ProfileGroupSettings.cs
- ApplicationSettingsBase.cs
- ProcessHostServerConfig.cs
- ProvidersHelper.cs
- DesignerActionPanel.cs
- XmlSchemaChoice.cs
- AsymmetricKeyExchangeDeformatter.cs
- SoapExtensionTypeElement.cs
- ServiceKnownTypeAttribute.cs
- LinkedList.cs
- EnumConverter.cs
- relpropertyhelper.cs
- SingleConverter.cs
- XmlSchemaComplexContentExtension.cs
- SetterBase.cs
- CorrelationTokenTypeConvertor.cs
- LineServicesRun.cs
- KeyEventArgs.cs
- PipelineModuleStepContainer.cs
- MimeObjectFactory.cs
- PolyLineSegmentFigureLogic.cs
- ProfilePropertySettingsCollection.cs
- DCSafeHandle.cs
- SerializationAttributes.cs
- TableLayoutPanelResizeGlyph.cs
- ZipIOBlockManager.cs
- UTF8Encoding.cs
- EntityUtil.cs
- TemplateContent.cs
- TCEAdapterGenerator.cs
- XmlSignatureManifest.cs
- SupportsEventValidationAttribute.cs
- ValidationErrorEventArgs.cs
- CodeGen.cs
- _StreamFramer.cs
- TemplateParser.cs
- NotifyCollectionChangedEventArgs.cs
- OutKeywords.cs
- LinkedResource.cs