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
- RouteTable.cs
- XamlParser.cs
- HybridDictionary.cs
- ListenerElementsCollection.cs
- XsltSettings.cs
- ComponentEvent.cs
- Certificate.cs
- ProfileModule.cs
- SerializationInfoEnumerator.cs
- SuppressIldasmAttribute.cs
- MailSettingsSection.cs
- FixUpCollection.cs
- CodeSpit.cs
- HitTestWithGeometryDrawingContextWalker.cs
- MgmtConfigurationRecord.cs
- XsltLoader.cs
- StreamWithDictionary.cs
- BoolExpression.cs
- NamespaceInfo.cs
- ParameterCollectionEditor.cs
- RecognitionEventArgs.cs
- XmlMembersMapping.cs
- StringValueSerializer.cs
- EdmRelationshipRoleAttribute.cs
- LabelLiteral.cs
- FigureHelper.cs
- DiscoveryEndpointValidator.cs
- DbProviderServices.cs
- ByteStreamGeometryContext.cs
- AccessViolationException.cs
- CodeSubDirectoriesCollection.cs
- TextElementEditingBehaviorAttribute.cs
- SqlMethodTransformer.cs
- CaseStatementSlot.cs
- DescendantBaseQuery.cs
- _TransmitFileOverlappedAsyncResult.cs
- Scheduler.cs
- UnsafeNativeMethods.cs
- ScrollViewerAutomationPeer.cs
- XmlWrappingWriter.cs
- SqlUserDefinedAggregateAttribute.cs
- TextDecorationLocationValidation.cs
- Hashtable.cs
- DBPropSet.cs
- Typeface.cs
- mediapermission.cs
- HitTestWithGeometryDrawingContextWalker.cs
- KeyboardDevice.cs
- WebPartConnectionsConnectVerb.cs
- SendMailErrorEventArgs.cs
- ColumnResizeAdorner.cs
- EnumMember.cs
- PEFileReader.cs
- IsolatedStorageFileStream.cs
- ChannelSinkStacks.cs
- DependencyObjectType.cs
- WasHttpHandlersInstallComponent.cs
- SkinBuilder.cs
- sqlser.cs
- AutoResetEvent.cs
- TemplateControlBuildProvider.cs
- SqlGatherProducedAliases.cs
- DbConnectionClosed.cs
- RegexWorker.cs
- WindowsFormsHostAutomationPeer.cs
- unitconverter.cs
- ByteKeyFrameCollection.cs
- UserPreferenceChangedEventArgs.cs
- UriExt.cs
- webbrowsersite.cs
- BehaviorEditorPart.cs
- ObjectViewListener.cs
- ListViewGroupConverter.cs
- DbDataRecord.cs
- ContextBase.cs
- MenuCommand.cs
- RegistryKey.cs
- DictionaryBase.cs
- errorpatternmatcher.cs
- BaseParser.cs
- wmiutil.cs
- DesignTimeParseData.cs
- DataGridViewRowPostPaintEventArgs.cs
- ControlParameter.cs
- InvalidPropValue.cs
- figurelengthconverter.cs
- EnlistmentTraceIdentifier.cs
- FormClosingEvent.cs
- PersistenceTypeAttribute.cs
- _NestedSingleAsyncResult.cs
- WindowsFormsHelpers.cs
- WebEventCodes.cs
- AndCondition.cs
- COM2IDispatchConverter.cs
- TypeListConverter.cs
- LinkLabel.cs
- HScrollBar.cs
- SkipStoryboardToFill.cs
- GeometryGroup.cs
- Separator.cs