示例#1
0
        /// <summary>
        /// Event handler for the ViewNavEvent.
        /// </summary>
        /// <param name="navEvent">Message for the event.</param>
        public void Handle(ViewNavEvent navEvent)
        {
            // Check if its a back event or a new view
            // to display
            if (navEvent.ID == ViewNavEvent.ViewId.Back)
            {
                if (_backStack.Count > 0)
                {
                    _prevViewNavEvent = _backStack.Pop();

                    NavigateToView(_prevViewNavEvent);
                }
            }
            else
            {
                // Show the view
                NavigateToView(navEvent);

                // Set the preview view to the back stack
                // and store the current view to put on the stack later next time
                if (_prevViewNavEvent != null)
                {
                    _backStack.Push(_prevViewNavEvent);
                }

                // Store the event if it is not back
                _prevViewNavEvent = navEvent;
            }
        }
示例#2
0
        /// <summary>
        /// Load the home view.
        /// </summary>
        public ShellViewModel(IEventAggregator events)
        {
            Debug.Print("Shell Open");
            // To set the Window title
            // http://stackoverflow.com/questions/4615467/problem-with-binding-title-of-wpf-window-on-property-in-shell-view-model-class
            base.DisplayName = "Pulse";

            // Initialize the values
            _events = events;
            events.Subscribe(this);

            // Setup ErrorLog
            SetupErrorLog();

            // Set a size of 10 views
            _backStack        = new Stack <ViewNavEvent>(20);
            _prevViewNavEvent = null;

            // Set the Navigation bar viewmodel
            NavBarVM        = IoC.Get <NavBarViewModel>();
            IsNavBarEnabled = false;

            // Set the Playback viewmodel
            PlaybackVM        = IoC.Get <PlaybackViewModel>();
            IsPlaybackEnabled = false;

            // Command to view the Home view
            HomeViewCommand = ReactiveCommand.Create();
            HomeViewCommand.Subscribe(_ => _events.PublishOnUIThread(new ViewNavEvent(ViewNavEvent.ViewId.HomeView)));

            // Command to view the Terimal view
            TerminalViewCommand = ReactiveCommand.Create();
            TerminalViewCommand.Subscribe(_ => _events.PublishOnUIThread(new ViewNavEvent(ViewNavEvent.ViewId.TerminalView)));

            // Command to view the Settings view
            SettingsViewCommand = ReactiveCommand.Create();
            SettingsViewCommand.Subscribe(_ => _events.PublishOnUIThread(new ViewNavEvent(ViewNavEvent.ViewId.SettingsView)));

            // Command to view the Settings view
            AboutViewCommand = ReactiveCommand.Create();
            AboutViewCommand.Subscribe(_ => _events.PublishOnUIThread(new ViewNavEvent(ViewNavEvent.ViewId.AboutView)));

            // Command to view the Settings view
            ValidationTestViewCommand = ReactiveCommand.Create();
            ValidationTestViewCommand.Subscribe(_ => _events.PublishOnUIThread(new ViewNavEvent(ViewNavEvent.ViewId.ValidationTestView)));

            // Command to go back a view
            BackCommand = ReactiveCommand.Create();
            BackCommand.Subscribe(_ => _events.PublishOnUIThread(new ViewNavEvent(ViewNavEvent.ViewId.Back)));

            // Display the HomeViewModel
            Handle(new ViewNavEvent(ViewNavEvent.ViewId.HomeView));

            // Check for updates to the applications
            CheckForUpdates();
            Debug.Print("Shell Complete");
        }
示例#3
0
        /// <summary>
        /// Navigate to the view based off the
        /// event given.
        /// </summary>
        /// <param name="message"></param>
        private void NavigateToView(ViewNavEvent message)
        {
            switch (message.ID)
            {
            case ViewNavEvent.ViewId.HomeView:
                var vmHome = IoC.Get <HomeViewModel>();
                //MenuLinks = vmHome.GetMenu();
                ActivateItem(vmHome);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.AboutView:
                var aboutHome = IoC.Get <AboutViewModel>();
                ActivateItem(aboutHome);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.TerminalView:
                var adcpConn = IoC.Get <AdcpConnection>();
                ActivateItem(adcpConn.TerminalVM);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.ViewDataView:
                var vmViewData = IoC.Get <ViewDataBaseViewModel>();
                ActivateItem(vmViewData);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = true;
                break;

            case ViewNavEvent.ViewId.ValidationTestView:
                var vtData = IoC.Get <ValidationTestBaseViewModel>();
                ActivateItem(vtData);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = true;
                break;

            case ViewNavEvent.ViewId.CompassCalView:
                var ccData = IoC.Get <CompassCalViewModel>();
                ActivateItem(ccData);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.ScreenDataView:
                var sdData = IoC.Get <ScreenDataBaseViewModel>();
                ActivateItem(sdData);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.DownloadDataView:
                var dlData = IoC.Get <DownloadDataViewModel>();
                ActivateItem(dlData);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.UpdateFirmwareView:
                var ufData = IoC.Get <UpdateFirmwareViewModel>();
                ActivateItem(ufData);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.CompassUtilityView:
                var cuData = IoC.Get <CompassUtilityViewModel>();
                ActivateItem(cuData);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.ExportDataView:
                var edData = IoC.Get <ExportDataViewModel>();
                ActivateItem(edData);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.ModeView:
                var modeData = IoC.Get <ModeViewModel>();
                ActivateItem(modeData);
                IsNavBarEnabled   = false;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.ProjectView:
                var prjData = IoC.Get <ProjectViewModel>();
                ActivateItem(prjData);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.NewProjectView:
                var newPrjData = IoC.Get <NewProjectViewModel>();
                ActivateItem(newPrjData);
                IsNavBarEnabled   = false;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.CommunicationsView:
                var commData = IoC.Get <CommunicationViewModel>();
                ActivateItem(commData);
                IsNavBarEnabled   = false;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.StorageView:
                var strgData = IoC.Get <StorageViewModel>();
                ActivateItem(strgData);
                IsNavBarEnabled   = false;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.LoadProjectsView:
                var loadPrjData = IoC.Get <LoadProjectsViewModel>();
                ActivateItem(loadPrjData);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.AdcpConfigurationView:
                var adcpConfigData = IoC.Get <AdcpConfigurationViewModel>();
                ActivateItem(adcpConfigData);
                IsNavBarEnabled   = false;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.AveragingView:
                var avgData = IoC.Get <AveragingBaseViewModel>();
                ActivateItem(avgData);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.BottomTrackOnView:
                var btOnData = IoC.Get <BottomTrackOnViewModel>();
                btOnData.SetConfigKey(message.Param);
                ActivateItem(btOnData);
                IsNavBarEnabled   = false;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.BinsView:
                var binData = IoC.Get <BinsViewModel>();
                binData.SetConfigKey(message.Param);
                ActivateItem(binData);
                IsNavBarEnabled   = false;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.BurstModeView:
                var burstData = IoC.Get <BurstModeViewModel>();
                burstData.SetConfigKey(message.Param);
                ActivateItem(burstData);
                IsNavBarEnabled   = false;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.PingTimingView:
                var pingTimingData = IoC.Get <PingTimingViewModel>();
                if (pingTimingData.SetConfigKey(message.Param))
                {
                    ActivateItem(pingTimingData);
                }
                else
                {
                    var adcpConfigData1 = IoC.Get <AdcpConfigurationViewModel>();
                    ActivateItem(adcpConfigData1);
                }
                IsNavBarEnabled   = false;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.FrequencyView:
                var freqData = IoC.Get <FrequencyViewModel>();
                ActivateItem(freqData);
                IsNavBarEnabled   = false;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.BroadbandModeView:
                var bbData = IoC.Get <BroadbandModeViewModel>();
                bbData.SetConfigKey(message.Param);
                ActivateItem(bbData);
                IsNavBarEnabled   = false;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.NavSourcesView:
                var navSrcData = IoC.Get <VesselMountViewModel>();
                ActivateItem(navSrcData);
                IsNavBarEnabled   = false;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.SaveAdcpConfigurationView:
                var saveAdcpConfigData = IoC.Get <SaveAdcpConfigurationViewModel>();
                ActivateItem(saveAdcpConfigData);
                IsNavBarEnabled   = false;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.SalinityView:
                var salData = IoC.Get <SalinityViewModel>();
                ActivateItem(salData);
                IsNavBarEnabled   = false;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.TimeView:
                var timeData = IoC.Get <TimeViewModel>();
                ActivateItem(timeData);
                IsNavBarEnabled   = false;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.EnsembleIntervalView:
                var ceiData = IoC.Get <EnsembleIntervalViewModel>();
                ActivateItem(ceiData);
                IsNavBarEnabled   = false;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.SimpleCompassCalView:
                var simpleCCData = IoC.Get <SimpleCompassCalViewModel>();
                ActivateItem(simpleCCData);
                IsNavBarEnabled = false;
                bool?flag = message.Param as bool?;
                if (flag.HasValue)
                {
                    IsNavBarEnabled = flag.Value;
                }
                else
                {
                    IsPlaybackEnabled = false;
                }
                break;

            case ViewNavEvent.ViewId.SimpleCompassCalWizardView:
                var simpleCCWizData = IoC.Get <SimpleCompassCalWizardViewModel>();
                ActivateItem(simpleCCWizData);
                IsNavBarEnabled   = false;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.ZeroPressureSensorView:
                var zeroPSData = IoC.Get <ZeroPressureSensorViewModel>();
                ActivateItem(zeroPSData);
                IsNavBarEnabled   = false;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.DeployAdcpView:
                var deployAdcpData = IoC.Get <DeployAdcpViewModel>();
                ActivateItem(deployAdcpData);
                IsNavBarEnabled   = false;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.ScanAdcpView:
                var scanAdcpData = IoC.Get <ScanAdcpViewModel>();
                ActivateItem(scanAdcpData);
                IsNavBarEnabled   = false;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.AdcpUtilitiesView:
                var adcpUtilData = IoC.Get <AdcpUtilitiesViewModel>();
                ActivateItem(adcpUtilData);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.AdcpPredictionModelView:
                var predData = IoC.Get <AdcpPredictionModelViewModel>();
                ActivateItem(predData);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.VesselMountOptionsView:
                var vmData = IoC.Get <VesselMountViewModel>();
                ActivateItem(vmData);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.SelectPlaybackView:
                var selPlaybackData = IoC.Get <SelectPlaybackViewModel>();
                ActivateItem(selPlaybackData);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.DvlSetupView:
                var dvlSetup = IoC.Get <DvlSetupViewModel>();
                ActivateItem(dvlSetup);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.RtiCompassCalView:
                var rtiCompassCal = IoC.Get <RtiCompassCalViewModel>();
                ActivateItem(rtiCompassCal);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.BackscatterView:
                var backScat = IoC.Get <BackscatterViewModel>();
                ActivateItem(backScat);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = true;
                break;

            case ViewNavEvent.ViewId.DiagnosticView:
                var diag = IoC.Get <DiagnosticsBaseViewModel>();
                ActivateItem(diag);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = false;
                break;

            case ViewNavEvent.ViewId.DataOutputView:
                var dataOut = IoC.Get <BaseDataOutputViewModel>();
                ActivateItem(dataOut);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = true;
                break;

            case ViewNavEvent.ViewId.DataFormatView:
                var dataFormat = IoC.Get <DataFormatViewModel>();
                ActivateItem(dataFormat);
                IsNavBarEnabled   = true;
                IsPlaybackEnabled = true;
                break;

            //case ViewNavEvent.ViewId.SettingsView:
            //    var vmSettings = IoC.Get<SettingsViewModel>();
            //    ActivateItem(vmSettings);
            //break;
            default:
                break;
            }
        }