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
- SqlRewriteScalarSubqueries.cs
- SafeCoTaskMem.cs
- FederatedMessageSecurityOverHttp.cs
- GridViewSelectEventArgs.cs
- FixedSOMElement.cs
- DataGridColumnHeaderItemAutomationPeer.cs
- GridViewPageEventArgs.cs
- DynamicDocumentPaginator.cs
- SuppressIldasmAttribute.cs
- QilPatternFactory.cs
- FixedPosition.cs
- SortExpressionBuilder.cs
- SerializerWriterEventHandlers.cs
- SqlDataReaderSmi.cs
- HashRepartitionStream.cs
- SafeNativeMethods.cs
- CompilerLocalReference.cs
- DefaultBinder.cs
- HandledMouseEvent.cs
- ServiceDurableInstance.cs
- AtomicFile.cs
- DefaultClaimSet.cs
- XmlSchemaIdentityConstraint.cs
- DbDataReader.cs
- ConfigurationException.cs
- DrawingAttributeSerializer.cs
- ProfilePropertyMetadata.cs
- DesignTimeData.cs
- CharacterMetricsDictionary.cs
- TaskResultSetter.cs
- Matrix3D.cs
- DrawingContextWalker.cs
- XsltCompileContext.cs
- OracleCommandSet.cs
- DesigntimeLicenseContextSerializer.cs
- XPathQilFactory.cs
- MatrixTransform.cs
- ExtenderProvidedPropertyAttribute.cs
- SamlAssertionDirectKeyIdentifierClause.cs
- SamlConstants.cs
- MasterPageBuildProvider.cs
- COM2Properties.cs
- RegistrySecurity.cs
- PackageFilter.cs
- HGlobalSafeHandle.cs
- PageCatalogPart.cs
- CollectionViewGroupRoot.cs
- PropagatorResult.cs
- WMIInterop.cs
- SplineQuaternionKeyFrame.cs
- WebPermission.cs
- XhtmlBasicImageAdapter.cs
- DesigntimeLicenseContextSerializer.cs
- PropertyEmitterBase.cs
- DBDataPermissionAttribute.cs
- ResponseBodyWriter.cs
- CorrelationManager.cs
- HostProtectionPermission.cs
- StateInitializationDesigner.cs
- mda.cs
- Conditional.cs
- HtmlInputHidden.cs
- X509Extension.cs
- ToolStripDropDownButton.cs
- PrintDocument.cs
- DataGridLinkButton.cs
- DesignerActionService.cs
- EntityRecordInfo.cs
- NameSpaceEvent.cs
- TypeTypeConverter.cs
- PriorityChain.cs
- EventWaitHandleSecurity.cs
- DiffuseMaterial.cs
- SpecialNameAttribute.cs
- DependencyObject.cs
- BaseCollection.cs
- IsolatedStoragePermission.cs
- ThicknessAnimationUsingKeyFrames.cs
- FormsAuthenticationUserCollection.cs
- DataGridRow.cs
- StringResourceManager.cs
- TypeUsage.cs
- EntityDataSourceColumn.cs
- JsonReaderWriterFactory.cs
- LoginName.cs
- BamlMapTable.cs
- SqlDependencyListener.cs
- CompilationPass2TaskInternal.cs
- FreeIndexList.cs
- BaseUriHelper.cs
- SqlProfileProvider.cs
- RadioButtonStandardAdapter.cs
- GlyphRunDrawing.cs
- InkCanvasFeedbackAdorner.cs
- MULTI_QI.cs
- ShapeTypeface.cs
- ToolBarPanel.cs
- BaseHashHelper.cs
- ExpressionEditor.cs
- CannotUnloadAppDomainException.cs