public void Launch() { if (_workspace == null) { try { DiagnosticServiceSummaryComponent component = new DiagnosticServiceSummaryComponent(); _workspace = ApplicationComponent.LaunchAsWorkspace( this.Context.DesktopWindow, component, "Imaging Services"); _workspace.Closed += delegate { _workspace = null; }; } catch (Exception e) { // failed to launch component ExceptionHandler.Report(e, this.Context.DesktopWindow); } } else { _workspace.Activate(); } }
public override bool ResolveNameInteractive(string query, out DiagnosticServiceSummary result) { result = null; try { IDiagnosticServiceInteractiveLookupProvider provider = (IDiagnosticServiceInteractiveLookupProvider) new DiagnosticServiceInteractiveLookupProviderExtensionPoint().CreateExtension(); result = provider.ResolveDiagnosticService(query, _desktopWindow); } catch (NotSupportedException) { // default DiagnosticServiceSummaryComponent summaryComponent = new DiagnosticServiceSummaryComponent(true); summaryComponent.IncludeDeactivatedItems = this.IncludeDeactivatedItems; if (!string.IsNullOrEmpty(query)) { summaryComponent.Name = query; } ApplicationComponentExitCode exitCode = ApplicationComponent.LaunchAsDialog( _desktopWindow, summaryComponent, "Imaging Services"); if (exitCode == ApplicationComponentExitCode.Accepted) { result = (DiagnosticServiceSummary)summaryComponent.SummarySelection.Item; } } return(result != null); }