Example #1
0
        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();
        }
Example #2
0
 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;
 }
Example #3
0
 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();
         }
     };
 }
Example #5
0
        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();
                }
            };
        }