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
- ExtendedPropertyDescriptor.cs
- ApplicationException.cs
- ParameterToken.cs
- MembershipSection.cs
- ConsumerConnectionPoint.cs
- BoundColumn.cs
- WorkflowValidationFailedException.cs
- HttpModuleAction.cs
- SynchronizedMessageSource.cs
- DataGridCommandEventArgs.cs
- XmlSchemaInferenceException.cs
- XmlMembersMapping.cs
- AlgoModule.cs
- RequestCacheEntry.cs
- ADConnectionHelper.cs
- Calendar.cs
- Soap12ProtocolReflector.cs
- SqlDataSourceSelectingEventArgs.cs
- COM2ExtendedUITypeEditor.cs
- TreeView.cs
- CodeMemberMethod.cs
- Int32CollectionConverter.cs
- ObfuscationAttribute.cs
- Rethrow.cs
- CurrentChangedEventManager.cs
- Properties.cs
- IDataContractSurrogate.cs
- Axis.cs
- GridViewColumn.cs
- SiteMapProvider.cs
- ResolveInfo.cs
- Variant.cs
- GenericTypeParameterConverter.cs
- FullTextState.cs
- WebException.cs
- WebServiceClientProxyGenerator.cs
- RoutedEventValueSerializer.cs
- PermissionRequestEvidence.cs
- TableCell.cs
- Intellisense.cs
- TextBoxView.cs
- PeerInvitationResponse.cs
- TransactionScope.cs
- CharEntityEncoderFallback.cs
- Aggregates.cs
- SapiAttributeParser.cs
- ApplicationHost.cs
- ReliableRequestSessionChannel.cs
- EventLogHandle.cs
- TempFiles.cs
- Win32.cs
- DataSetViewSchema.cs
- PathGeometry.cs
- TargetException.cs
- BridgeDataRecord.cs
- GridItemProviderWrapper.cs
- RC2CryptoServiceProvider.cs
- IconHelper.cs
- SqlInternalConnection.cs
- WebRequestModuleElementCollection.cs
- DesignerVerb.cs
- SourceFileBuildProvider.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- GridItemPatternIdentifiers.cs
- Operator.cs
- MultiPageTextView.cs
- Reference.cs
- WebPartDisplayModeCollection.cs
- ScrollBar.cs
- TextRangeEditTables.cs
- TextElementAutomationPeer.cs
- IEnumerable.cs
- VisualCollection.cs
- Stack.cs
- MachineKeyConverter.cs
- SymbolMethod.cs
- OSFeature.cs
- PropertyTabChangedEvent.cs
- WhiteSpaceTrimStringConverter.cs
- CultureTable.cs
- ViewUtilities.cs
- SupportingTokenSpecification.cs
- Rect.cs
- PackageRelationshipSelector.cs
- ExternalException.cs
- TripleDESCryptoServiceProvider.cs
- RelatedView.cs
- HeaderedContentControl.cs
- CustomDictionarySources.cs
- BitVector32.cs
- NavigatingCancelEventArgs.cs
- BamlBinaryReader.cs
- TypeValidationEventArgs.cs
- LogicalExpressionEditor.cs
- DoubleAnimation.cs
- Int64AnimationBase.cs
- MobileContainerDesigner.cs
- DeferredSelectedIndexReference.cs
- PcmConverter.cs
- CapabilitiesState.cs