示例#1
0
        public LogSourcesController(
            ILogSourcesManager logSources,
            Preprocessing.ILogSourcesPreprocessingManager logSourcesPreprocessings,
            IRecentlyUsedEntities mruLogsList,
            IShutdown shutdown
            )
        {
            this.logSources = logSources;
            this.logSourcesPreprocessings = logSourcesPreprocessings;
            this.mruLogsList = mruLogsList;

            this.logSources.OnLogSourceAnnotationChanged += (s, e) =>
            {
                var source = (ILogSource)s;
                mruLogsList.UpdateRecentLogEntry(source.Provider, source.Annotation);
            };
            this.logSourcesPreprocessings.ProviderYielded += (sender, yieldedProvider) =>
            {
                CreateLogSourceInternal(yieldedProvider.Factory, yieldedProvider.ConnectionParams, yieldedProvider.IsHiddenLog);
            };

            shutdown.Cleanup += (sender, e) =>
            {
                shutdown.AddCleanupTask(Dispose());
            };
        }
 public Presenter(
     ILogProviderFactoryRegistry logProviderFactoryRegistry,
     IPagePresentersRegistry registry,
     IRecentlyUsedEntities mru,
     IView view,
     IUserDefinedFormatsManager userDefinedFormatsManager,
     Func <IPagePresenter> formatDetectionPageFactory,
     FormatsWizard.IPresenter formatsWizardPresenter
     )
 {
     this.logProviderFactoryRegistry = logProviderFactoryRegistry;
     this.registry = registry;
     this.mru      = mru;
     this.view     = view;
     this.formatDetectionPageFactory = formatDetectionPageFactory;
     this.userDefinedFormatsManager  = userDefinedFormatsManager;
     this.formatsWizardPresenter     = formatsWizardPresenter;
 }
示例#3
0
        public FactoryUI(Factory factory, ILogSourcesManager logSources, IRecentlyUsedEntities recentlyUsedLogs, ITraceSourceFactory traceSourceFactory)
        {
            this.trace            = traceSourceFactory.CreateTraceSource("UI");
            this.factory          = factory;
            this.logSources       = logSources;
            this.recentlyUsedLogs = recentlyUsedLogs;
            InitializeComponent();

            recentPeriodCounterPresenter = new Presenters.LabeledStepperPresenter.Presenter(recentPeriodCounter);
            this.recentPeriodCounterPresenter.MaxValue      = 2147483647;
            this.recentPeriodCounterPresenter.MinValue      = 1;
            this.recentPeriodCounterPresenter.Value         = 1;
            this.recentPeriodCounterPresenter.AllowedValues = new int[0];

            var mostRecentConnectionParams = FindMostRecentConnectionParams();

            if (mostRecentConnectionParams != null)
            {
                PrefillAccountFields(mostRecentConnectionParams);
            }

            SetInitialDatesRange();
            UpdateControls();
        }
        public Presenter(
            Settings.IGlobalSettingsAccessor settings,
            IRecentlyUsedEntities mru,
            ISearchHistory searchHistory,
            IView view)
        {
            this.view                           = view;
            this.settingsAccessor               = settings;
            this.recentLogsList                 = mru;
            this.searchHistory                  = searchHistory;
            this.recentLogsListSizeEditor       = new LabeledStepperPresenter.Presenter(view.GetStepperView(ViewControl.RecentLogsListSizeEditor));
            this.searchHistoryDepthEditor       = new LabeledStepperPresenter.Presenter(view.GetStepperView(ViewControl.SearchHistoryDepthEditor));
            this.maxNumberOfSearchResultsEditor = new LabeledStepperPresenter.Presenter(view.GetStepperView(ViewControl.MaxNumberOfSearchResultsEditor));
            this.logSizeThresholdEditor         = new LabeledStepperPresenter.Presenter(view.GetStepperView(ViewControl.LogSizeThresholdEditor));
            this.logWindowSizeEditor            = new LabeledStepperPresenter.Presenter(view.GetStepperView(ViewControl.LogWindowSizeEditor));

            this.logSizeThresholdEditor.AllowedValues = new int[] {
                1,
                2,
                4,
                8,
                12,
                16,
                24,
                32,
                48,
                64,
                80,
                100,
                120,
                160,
                200
            };
            this.logSizeThresholdEditor.Value = 1;

            this.logWindowSizeEditor.AllowedValues = new int[] {
                1,
                2,
                3,
                4,
                5,
                6,
                8,
                12,
                20,
                24
            };
            this.logWindowSizeEditor.Value = 1;

            this.searchHistoryDepthEditor.AllowedValues = new int[] {
                0,
                5,
                10,
                20,
                30,
                40,
                50,
                60,
                70,
                80,
                90,
                100,
                120,
                140,
                160,
                180,
                200,
                220,
                240,
                260,
                280,
                300
            };
            this.searchHistoryDepthEditor.Value = 0;

            this.maxNumberOfSearchResultsEditor.AllowedValues = new int[] {
                1000,
                4000,
                8000,
                16000,
                30000,
                50000,
                70000,
                100000,
                200000
            };
            this.maxNumberOfSearchResultsEditor.Value = 1000;


            this.recentLogsListSizeEditor.AllowedValues = new int[] {
                0,
                100,
                200,
                400,
                800,
                1500
            };
            this.recentLogsListSizeEditor.Value = 0;

            view.SetPresenter(this);

            UpdateView();
        }
示例#5
0
 public FormatAutodetect(IRecentlyUsedEntities recentlyUsedLogs, ILogProviderFactoryRegistry factoriesRegistry, ITempFilesManager tempFilesManager) :
     this(recentlyUsedLogs.MakeFactoryMRUIndexGetter(), factoriesRegistry, tempFilesManager)
 {
 }
        public Presenter(
            ILogSourcesManager logSources,
            IUserDefinedFormatsManager udfManager,
            IRecentlyUsedEntities mru,
            Preprocessing.IManager logSourcesPreprocessings,
            IView view,
            Preprocessing.IStepsFactory preprocessingStepsFactory,
            Workspaces.IWorkspacesManager workspacesManager,
            SourcesList.IPresenter sourcesListPresenter,
            NewLogSourceDialog.IPresenter newLogSourceDialogPresenter,
            IHeartBeatTimer heartbeat,
            SharingDialog.IPresenter sharingDialogPresenter,
            HistoryDialog.IPresenter historyDialogPresenter,
            IPresentersFacade facade,
            SourcePropertiesWindow.IPresenter sourcePropertiesWindowPresenter,
            IAlertPopup alerts,
            ITraceSourceFactory traceSourceFactory,
            IChangeNotification changeNotification
            )
        {
            this.logSources = logSources;
            this.udfManager = udfManager;
            this.mru        = mru;
            this.view       = view;
            this.logSourcesPreprocessings    = logSourcesPreprocessings;
            this.preprocessingStepsFactory   = preprocessingStepsFactory;
            this.workspacesManager           = workspacesManager;
            this.newLogSourceDialogPresenter = newLogSourceDialogPresenter;
            this.sourcesListPresenter        = sourcesListPresenter;
            this.tracer = traceSourceFactory.CreateTraceSource("UI", "smgr-ui");
            this.sharingDialogPresenter          = sharingDialogPresenter;
            this.historyDialogPresenter          = historyDialogPresenter;
            this.sourcePropertiesWindowPresenter = sourcePropertiesWindowPresenter;
            this.alerts             = alerts;
            this.presentersFacade   = facade;
            this.changeNotification = changeNotification;

            sourcesListPresenter.DeleteRequested += (sender, args) =>
            {
                DeleteSelectedSources();
            };

            logSourcesPreprocessings.PreprocessingAdded += (sender, args) =>
            {
                if ((args.LogSourcePreprocessing.Flags & PreprocessingOptions.HighlightNewPreprocessing) != 0)
                {
                    preprocessingAwaitingHighlighting = args.LogSourcePreprocessing;
                    pendingUpdateFlag.Invalidate();
                }
            };

            heartbeat.OnTimer += (sender, args) =>
            {
                if (pendingUpdateFlag.Validate())
                {
                    UpdateView();
                }
            };

            view.SetViewModel(this);
        }
示例#7
0
 public FormatAutodetect(IRecentlyUsedEntities recentlyUsedLogs, ILogProviderFactoryRegistry factoriesRegistry, ITraceSourceFactory traceSourceFactory, LogMedia.IFileSystem fileSystem) :
     this(recentlyUsedLogs.MakeFactoryMRUIndexGetter(), factoriesRegistry, traceSourceFactory, fileSystem)
 {
 }
示例#8
0
        public Presenter(
            ILogSourcesManager logSources,
            IUserDefinedFormatsManager udfManager,
            IRecentlyUsedEntities mru,
            Preprocessing.ILogSourcesPreprocessingManager logSourcesPreprocessings,
            ILogSourcesController logSourcesController,
            IView view,
            Preprocessing.IPreprocessingStepsFactory preprocessingStepsFactory,
            Workspaces.IWorkspacesManager workspacesManager,
            SourcesList.IPresenter sourcesListPresenter,
            NewLogSourceDialog.IPresenter newLogSourceDialogPresenter,
            IHeartBeatTimer heartbeat,
            SharingDialog.IPresenter sharingDialogPresenter,
            HistoryDialog.IPresenter historyDialogPresenter,
            IPresentersFacade facade,
            SourcePropertiesWindow.IPresenter sourcePropertiesWindowPresenter,
            IAlertPopup alerts
            )
        {
            this.logSources           = logSources;
            this.udfManager           = udfManager;
            this.logSourcesController = logSourcesController;
            this.mru  = mru;
            this.view = view;
            this.logSourcesPreprocessings    = logSourcesPreprocessings;
            this.preprocessingStepsFactory   = preprocessingStepsFactory;
            this.workspacesManager           = workspacesManager;
            this.newLogSourceDialogPresenter = newLogSourceDialogPresenter;
            this.sourcesListPresenter        = sourcesListPresenter;
            this.tracer = new LJTraceSource("UI", "smgr-ui");
            this.sharingDialogPresenter          = sharingDialogPresenter;
            this.historyDialogPresenter          = historyDialogPresenter;
            this.sourcePropertiesWindowPresenter = sourcePropertiesWindowPresenter;
            this.alerts           = alerts;
            this.presentersFacade = facade;

            sourcesListPresenter.DeleteRequested += delegate(object sender, EventArgs args)
            {
                DeleteSelectedSources();
            };
            logSources.OnLogSourceAdded += (sender, args) =>
            {
                UpdateRemoveAllButton();
            };
            logSources.OnLogSourceRemoved += (sender, args) =>
            {
                updateTracker.Invalidate();
                UpdateRemoveAllButton();
            };
            logSourcesPreprocessings.PreprocessingAdded += (sender, args) =>
            {
                updateTracker.Invalidate();
                UpdateRemoveAllButton();
                if ((args.LogSourcePreprocessing.Flags & PreprocessingOptions.HighlightNewPreprocessing) != 0)
                {
                    preprocessingAwaitingHighlighting = args.LogSourcePreprocessing;
                }
            };
            logSourcesPreprocessings.PreprocessingDisposed += (sender, args) =>
            {
                updateTracker.Invalidate();
                UpdateRemoveAllButton();
            };
            logSourcesPreprocessings.PreprocessingChangedAsync += (sender, args) =>
            {
                updateTracker.Invalidate();
            };
            sourcesListPresenter.SelectionChanged += delegate(object sender, EventArgs args)
            {
                bool anySourceSelected  = sourcesListPresenter.SelectedSources.Any();
                bool anyPreprocSelected = sourcesListPresenter.SelectedPreprocessings.Any();
                view.EnableDeleteSelectedSourcesButton(anySourceSelected || anyPreprocSelected);
                view.EnableTrackChangesCheckBox(anySourceSelected);
                UpdateTrackChangesCheckBox();
                view.SetPropertiesButtonState(
                    sourcePropertiesWindowPresenter != null && sourcesListPresenter.SelectedSources.Count() == 1);
            };

            logSources.OnLogSourceVisiblityChanged += (sender, args) =>
            {
                updateTracker.Invalidate();
            };
            logSources.OnLogSourceAnnotationChanged += (sender, args) =>
            {
                updateTracker.Invalidate();
            };
            logSources.OnLogSourceTrackingFlagChanged += (sender, args) =>
            {
                updateTracker.Invalidate();
            };
            logSources.OnLogSourceStatsChanged += (sender, args) =>
            {
                if ((args.Flags & (LogProviderStatsFlag.Error | LogProviderStatsFlag.CachedMessagesCount | LogProviderStatsFlag.State | LogProviderStatsFlag.BytesCount | LogProviderStatsFlag.BackgroundAcivityStatus)) != 0)
                {
                    updateTracker.Invalidate();
                }
            };
            heartbeat.OnTimer += (sender, args) =>
            {
                if (updateTracker.Validate())
                {
                    UpdateView();
                }
            };

            this.sharingDialogPresenter.AvailabilityChanged += (sender, args) =>
            {
                UpdateShareButton();
            };
            this.sharingDialogPresenter.IsBusyChanged += (sender, args) =>
            {
                UpdateShareButton();
            };

            view.SetPresenter(this);

            UpdateShareButton();
        }