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
- _RequestCacheProtocol.cs
- OracleTimeSpan.cs
- CodeNamespaceImportCollection.cs
- CompositeTypefaceMetrics.cs
- XmlChoiceIdentifierAttribute.cs
- TabControlToolboxItem.cs
- AttributeUsageAttribute.cs
- DocumentViewer.cs
- WindowsGrip.cs
- OdbcTransaction.cs
- StorageInfo.cs
- AssemblyAttributesGoHere.cs
- ProtocolsConfigurationEntry.cs
- DesignTimeHTMLTextWriter.cs
- ScriptServiceAttribute.cs
- SendingRequestEventArgs.cs
- DocumentXmlWriter.cs
- HtmlInputPassword.cs
- QuaternionRotation3D.cs
- DateTimeValueSerializerContext.cs
- RoleBoolean.cs
- SerializationException.cs
- SelectionEditor.cs
- DataGridViewAdvancedBorderStyle.cs
- DataGridTablesFactory.cs
- QilLoop.cs
- DispatcherSynchronizationContext.cs
- ContentPlaceHolderDesigner.cs
- WindowsHyperlink.cs
- DirectoryLocalQuery.cs
- ObjectStorage.cs
- ControlIdConverter.cs
- WinFormsSecurity.cs
- RectangleConverter.cs
- VersionPair.cs
- CheckBox.cs
- AssemblyCacheEntry.cs
- RectKeyFrameCollection.cs
- complextypematerializer.cs
- BookmarkTable.cs
- Tracking.cs
- Int16AnimationUsingKeyFrames.cs
- XmlIncludeAttribute.cs
- PageMediaSize.cs
- TargetParameterCountException.cs
- ContentElementAutomationPeer.cs
- XhtmlBasicTextBoxAdapter.cs
- AspCompat.cs
- SHA384Cng.cs
- ListBoxItemAutomationPeer.cs
- ZipPackagePart.cs
- MiniLockedBorderGlyph.cs
- FixedDocumentSequencePaginator.cs
- BuildManager.cs
- CheckBox.cs
- XmlSchemaImport.cs
- OleDbReferenceCollection.cs
- CodeTypeReferenceCollection.cs
- IItemProperties.cs
- AutoCompleteStringCollection.cs
- Pair.cs
- basecomparevalidator.cs
- SafeSecurityHelper.cs
- IdentifierCreationService.cs
- TextTreeUndo.cs
- BuildProviderUtils.cs
- SortedList.cs
- WebPartConnectionsCancelVerb.cs
- RectangleF.cs
- RadioButton.cs
- DisplayToken.cs
- TabletDeviceInfo.cs
- FieldAccessException.cs
- FunctionOverloadResolver.cs
- TemplateEditingVerb.cs
- SystemWebCachingSectionGroup.cs
- Path.cs
- DuplicateWaitObjectException.cs
- ManagedCodeMarkers.cs
- StylusPlugin.cs
- X509ClientCertificateAuthentication.cs
- OracleConnection.cs
- HtmlControlPersistable.cs
- ContainerFilterService.cs
- TypeUtil.cs
- InstanceNameConverter.cs
- PersistNameAttribute.cs
- ColumnHeader.cs
- ExpressionVisitorHelpers.cs
- MultiAsyncResult.cs
- QueueProcessor.cs
- VirtualDirectoryMapping.cs
- DtdParser.cs
- MultipleViewPattern.cs
- NamespaceEmitter.cs
- TypeEnumerableViewSchema.cs
- ProtocolViolationException.cs
- PropertyDescriptorCollection.cs
- VolatileEnlistmentMultiplexing.cs
- CreateUserWizardStep.cs