Пример #1
0
 private void _controller_StateChanged(object sender, TelemetryAppStateChangedEventArgs e)
 {
     try
     {
         ControllerStateChanged(e);
     }
     catch (Exception ex)
     {
         ExceptionHandler(ex);
     }
 }
Пример #2
0
        protected virtual void ControllerStateChanged(TelemetryAppStateChangedEventArgs e)
        {
            if (this.InvokeRequired)
            {
                this.BeginInvoke(new MethodInvoker(() => { ControllerStateChanged(e); }));
            }
            else
            {
                mnuMainViewMenu.Enabled      = e.NewState.HasFlag(AppState.Ready);
                tlsMainViewToolStrip.Enabled = e.NewState.HasFlag(AppState.Ready);
                tlsSessionToolStrip.Enabled  = e.NewState.HasFlag(AppState.SessionLoaded);

                openProjectToolStripMenuItem.Enabled   = e.NewState.HasFlag(AppState.Ready);
                newProjectToolStripMenuItem.Enabled    = e.NewState.HasFlag(AppState.Ready);
                closeProjectToolStripMenuItem.Enabled  = e.NewState.HasFlag(AppState.ProjectLoaded);
                saveProjectAsToolStripMenuItem.Enabled = e.NewState.HasFlag(AppState.ProjectLoaded);
                saveProjectToolStripMenuItem.Enabled   = e.NewState.HasFlag(AppState.ProjectLoaded);

                btnOpenProject.Enabled   = e.NewState.HasFlag(AppState.Ready);
                btnNewProject.Enabled    = e.NewState.HasFlag(AppState.Ready);
                btnCloseProject.Enabled  = e.NewState.HasFlag(AppState.ProjectLoaded);
                btnSaveProject.Enabled   = e.NewState.HasFlag(AppState.ProjectLoaded);
                btnSaveProjectAs.Enabled = e.NewState.HasFlag(AppState.ProjectLoaded);

                openToolStripMenuItem.Enabled             = e.NewState.HasFlag(AppState.ProjectLoaded);
                closeSessionToolStripMenuItem.Enabled     = e.NewState.HasFlag(AppState.SessionLoaded);
                loadSavedSessionToolStripMenuItem.Enabled = e.NewState.HasFlag(AppState.SessionLoaded);
                saveSessionToolStripMenuItem.Enabled      = e.NewState.HasFlag(AppState.SessionLoaded);
                saveSessionToolStripMenuItem.Enabled      = e.NewState.HasFlag(AppState.SessionLoaded);
                btnOpenSession.Enabled  = e.NewState.HasFlag(AppState.ProjectLoaded);
                btnCloseSession.Enabled = e.NewState.HasFlag(AppState.SessionLoaded);
                _sessionMru?.SetMenuItemState(e.NewState.HasFlag(AppState.ProjectLoaded));

                btnNewHistogramDisplay.Enabled   = e.NewState.HasFlag(AppState.ProjectLoaded);
                btnNewLapTimesDisplay.Enabled    = e.NewState.HasFlag(AppState.ProjectLoaded);
                btnNewWaveformDisplay.Enabled    = e.NewState.HasFlag(AppState.ProjectLoaded);
                btnNewTrackMapDisplay.Enabled    = e.NewState.HasFlag(AppState.ProjectLoaded);
                btnSetupDisplay.Enabled          = e.NewState.HasFlag(AppState.ProjectLoaded);
                btnSessionDetailsDisplay.Enabled = e.NewState.HasFlag(AppState.SessionLoaded);

                histogramToolStripMenuItem.Enabled      = e.NewState.HasFlag(AppState.ProjectLoaded);
                lapTimesToolStripMenuItem.Enabled       = e.NewState.HasFlag(AppState.ProjectLoaded);
                waveformToolStripMenuItem.Enabled       = e.NewState.HasFlag(AppState.ProjectLoaded);
                trackMapToolStripMenuItem.Enabled       = e.NewState.HasFlag(AppState.ProjectLoaded);
                setupToolStripMenuItem.Enabled          = e.NewState.HasFlag(AppState.ProjectLoaded);
                sessionDetailsToolStripMenuItem.Enabled = e.NewState.HasFlag(AppState.ProjectLoaded);

                btnFirstLap.Enabled    = e.NewState.HasFlag(AppState.SessionLoaded);
                btnNextLap.Enabled     = e.NewState.HasFlag(AppState.SessionLoaded);
                btnPreviousLap.Enabled = e.NewState.HasFlag(AppState.SessionLoaded);
                btnLastLap.Enabled     = e.NewState.HasFlag(AppState.SessionLoaded);
                btnFastestLap.Enabled  = e.NewState.HasFlag(AppState.SessionLoaded);

                btnResetZoom.Enabled = e.NewState.HasFlag(AppState.SessionLoaded);
                btnZoomIn.Enabled    = e.NewState.HasFlag(AppState.SessionLoaded);
                btnZoomOut.Enabled   = e.NewState.HasFlag(AppState.SessionLoaded);

                copyToolStripMenuItem.Enabled   = false;
                cutToolStripMenuItem.Enabled    = false;
                pasteToolStripMenuItem.Enabled  = false;
                deleteToolStripMenuItem.Enabled = false;

                btnCut.Enabled    = false;
                btnCopy.Enabled   = false;
                btnPaste.Enabled  = false;
                btnDelete.Enabled = false;

                fieldDefinitionsToolStripMenuItem.Enabled = e.NewState.HasFlag(AppState.Ready);
                btnFieldDefinitions.Enabled             = e.NewState.HasFlag(AppState.Ready);
                functionEditorToolStripMenuItem.Enabled = e.NewState.HasFlag(AppState.Ready);
                btnFunctionEditor.Enabled = e.NewState.HasFlag(AppState.Ready);
                trackMapBuilderToolStripMenuItem.Enabled = e.NewState.HasFlag(AppState.Ready);
                btnTrackMapBuilder.Enabled       = e.NewState.HasFlag(AppState.Ready);
                optionsToolStripMenuItem.Enabled = e.NewState.HasFlag(AppState.Ready);
                btnOptions.Enabled = e.NewState.HasFlag(AppState.Ready);

                btnSaveDisplay.Enabled = e.NewState.HasFlag(AppState.ProjectLoaded);
                saveDisplayToolStripMenuItem.Enabled  = e.NewState.HasFlag(AppState.ProjectLoaded);
                saveDisplayToolStripMenuItem1.Enabled = e.NewState.HasFlag(AppState.ProjectLoaded);
                loadDisplayToolStripMenuItem.Enabled  = e.NewState.HasFlag(AppState.ProjectLoaded);

                openDisplayToolStripMenuItem.Enabled = e.NewState.HasFlag(AppState.ProjectLoaded);
                btnOpenDisplay.Enabled = e.NewState.HasFlag(AppState.ProjectLoaded);

                Console.WriteLine($"Old State: {e.OldState.ToString()}   New State: {e.NewState.ToString()}");

                UpdateProject(Controller?.Project);
                UpdateSession(Controller?.Session);
            }
        }