public PluginsManager( IApplication entryPoint, UI.Presenters.MainForm.IPresenter mainFormPresenter, Telemetry.ITelemetryCollector telemetry, IShutdown shutdown) { this.tracer = new LJTraceSource("Extensibility", "plugins-mgr"); this.entryPoint = entryPoint; this.mainFormPresenter = mainFormPresenter; InitPlugins(telemetry); RegisterInteropClasses(); LoadTabExtensions(); mainFormPresenter.TabChanging += (sender, e) => { var ext = e.CustomTabTag as IMainFormTabExtension; if (ext == null) { return; } try { ext.OnTabPageSelected(); } catch (Exception ex) { telemetry.ReportException(ex, "activation of plugin tab: " + ext.Caption); tracer.Error(ex, "Failed to activate extension tab"); } }; shutdown.Cleanup += (s, e) => Dispose(); }
public Presentation( UI.Presenters.LoadedMessages.IPresenter loadedMessagesPresenter, UI.Presenters.IClipboardAccess clipboardAccess, UI.Presenters.IPresentersFacade presentersFacade, UI.Presenters.SourcesManager.IPresenter sourcesManager, UI.Presenters.NewLogSourceDialog.IPresenter newLogSourceDialog, UI.Presenters.IShellOpen shellOpen, UI.Presenters.IAlertPopup alerts, UI.Presenters.IPromptDialog prompt, UI.Presenters.MainForm.IPresenter mainFormPresenter, UI.Presenters.IColorTheme theme, UI.Presenters.MessagePropertiesDialog.IPresenter messagePropertiesDialog, UI.Presenters.IPromptDialog promptDialog, UI.Presenters.Postprocessing.IPresentation postprocessing, UI.Presenters.LogViewer.IPresenter loadedMessagesLogViewer ) { this.LoadedMessages = loadedMessagesPresenter; this.ClipboardAccess = clipboardAccess; this.Facade = presentersFacade; this.SourcesManager = sourcesManager; this.NewLogSourceDialog = newLogSourceDialog; this.ShellOpen = shellOpen; this.Alerts = alerts; this.Prompt = prompt; this.MainFormPresenter = mainFormPresenter; this.Theme = theme; this.MessagePropertiesDialog = messagePropertiesDialog; this.PromptDialog = promptDialog; this.Postprocessing = postprocessing; this.LoadedMessagesLogViewer = loadedMessagesLogViewer; }
public Presentation( UI.Presenters.LoadedMessages.IPresenter loadedMessagesPresenter, UI.Presenters.IClipboardAccess clipboardAccess, UI.Presenters.IPresentersFacade presentersFacade, UI.Presenters.SourcesManager.IPresenter sourcesManager, UI.Presenters.NewLogSourceDialog.IPresenter newLogSourceDialog, UI.Presenters.IShellOpen shellOpen, UI.Presenters.IAlertPopup alerts, UI.Presenters.IPromptDialog prompt, UI.Presenters.MainForm.IPresenter mainFormPresenter, UI.Presenters.Postprocessing.MainWindowTabPage.IPresenter postprocessorsTabPage, UI.Presenters.Postprocessing.MainWindowTabPage.IPostprocessorOutputFormFactory postprocessorsFormFactory, UI.Presenters.IColorTheme theme, UI.Presenters.MessagePropertiesDialog.IPresenter messagePropertiesDialog, UI.Presenters.IPromptDialog promptDialog ) { this.LoadedMessages = loadedMessagesPresenter; this.ClipboardAccess = clipboardAccess; this.Facade = presentersFacade; this.SourcesManager = sourcesManager; this.NewLogSourceDialog = newLogSourceDialog; this.ShellOpen = shellOpen; this.Alerts = alerts; this.Prompt = prompt; this.MainFormPresenter = mainFormPresenter; this.PostprocessorsTabPage = postprocessorsTabPage; this.PostprocessorsFormFactory = postprocessorsFormFactory; this.Theme = theme; this.MessagePropertiesDialog = messagePropertiesDialog; this.PromptDialog = promptDialog; }
public MainWindowTabPageAdapter(UI.Presenters.MainForm.IPresenter mainFormPresenter) : this() { mainFormPresenter.AddCustomTab(this.View, "Postprocessing", this); mainFormPresenter.TabChanging += (sender, e) => { if (e.CustomTabTag == this) { eventsHandler.OnTabPageSelected(); } }; }
public TabPage(UI.Presenters.MainForm.IPresenter mainFormPresenter) { InitializeComponent(); this.SetStyle(ControlStyles.Selectable, true); this.Dock = DockStyle.Fill; postprocessorsControls[ViewControlId.StateInspector] = new PostprocessorControls(stateInspectorLinkLabel, stateInspectorLinkLabel, stateInspectorProgressBar); postprocessorsControls[ViewControlId.Sequence] = new PostprocessorControls(sequenceDiagramLinkLabel, sequenceDiagramLinkLabel, sequenceDiagramProgressBar); postprocessorsControls[ViewControlId.TimeSeries] = new PostprocessorControls(timeSeriesLinkLabel, timeSeriesLinkLabel, timeSeriesProgressBar); postprocessorsControls[ViewControlId.Timeline] = new PostprocessorControls(timelineLinkLabel, timelineLinkLabel, timelineProgressBar); postprocessorsControls[ViewControlId.Correlate] = new PostprocessorControls(null, correlationAction1LinkLabel, correlationProgressBar); postprocessorsControls[ViewControlId.LogsCollectionControl1] = new PostprocessorControls(null, logsCollectionControlLinkLabel1, logsCollectionControlProgressBar1); postprocessorsControls[ViewControlId.LogsCollectionControl2] = new PostprocessorControls(null, logsCollectionControlLinkLabel2, logsCollectionControlProgressBar2); postprocessorsControls[ViewControlId.LogsCollectionControl3] = new PostprocessorControls(null, logsCollectionControlLinkLabel3, null); postprocessorsControls[ViewControlId.AllPostprocessors] = new PostprocessorControls(runAllPostprocessorsLinkLabel, runAllPostprocessorsLinkLabel, allPostprocessorsProgressBar); foreach (var x in postprocessorsControls) { x.Value.link.LinkClicked += (s, e) => { if (!string.IsNullOrEmpty(e.Link.LinkData as string)) { eventsHandler.OnActionClick((string)e.Link.LinkData, x.Key, GetClickFlags()); } }; } // todo: create when there a least one postprocessor exists. Postprocessors may come from plugings or it can be internal trace. mainFormPresenter.AddCustomTab(this, "Postprocessing", this); mainFormPresenter.TabChanging += (sender, e) => { if (e.CustomTabTag == this) { eventsHandler.OnTabPageSelected(); } }; }