diff options
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs | 51 |
1 files changed, 49 insertions, 2 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs index 08b8897d2..1d0a52baf 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs @@ -23,6 +23,8 @@ using Tango.Integration.Operators; using Tango.PMR.Diagnostics; using System.Reflection; using Tango.PMR.Common; +using Tango.SharedUI.Helpers; +using Tango.Transport; namespace Tango.MachineStudio.Developer.ViewModels { @@ -35,6 +37,7 @@ namespace Tango.MachineStudio.Developer.ViewModels private INotificationProvider _notification; private TimeSpan _runningJobEstimatedDuration; private Dictionary<String, GraphControllerBase> _controllers; + private int _fullScreenGraphIndex; #region Properties @@ -307,6 +310,16 @@ namespace Tango.MachineStudio.Developer.ViewModels set { _machineOperator = value; RaisePropertyChangedAuto(); } } + private IRealTimeGraph _fullScreenGraph; + /// <summary> + /// Gets or sets the full screen graph. + /// </summary> + public IRealTimeGraph FullScreenGraph + { + get { return _fullScreenGraph; } + set { _fullScreenGraph = value; RaisePropertyChangedAuto(); } + } + #endregion #region Commands @@ -391,6 +404,11 @@ namespace Tango.MachineStudio.Developer.ViewModels /// </summary> public RelayCommand<CaptureDevice> ToggleCameraCommand { get; set; } + /// <summary> + /// Gets or sets the exit full screen command. + /// </summary> + public RelayCommand ExitFullScreenCommand { get; set; } + #endregion #region Constructors @@ -439,6 +457,7 @@ namespace Tango.MachineStudio.Developer.ViewModels StartJobCommand = new RelayCommand(StartJob, () => SelectedJob != null && !IsJobRunning); StopJobCommand = new RelayCommand(StopJob, () => IsJobRunning); CloseJobCompletionStatusCommand = new RelayCommand(CloseJobCompletionStatusBar); + ExitFullScreenCommand = new RelayCommand(ExitFullScreen); CaptureDevices = new ObservableCollection<CaptureDevice>(); var availableDevices = CaptureDevice.GetAvailableCaptureDevices(); @@ -605,6 +624,24 @@ namespace Tango.MachineStudio.Developer.ViewModels #region Private Methods + private void ExitFullScreen() + { + if (FullScreenGraph != null) + { + FullScreenGraph.EnableToolBar = true; + Graphs.Insert(_fullScreenGraphIndex, FullScreenGraph); + FullScreenGraph = null; + } + } + + private void StartFullScreenGraph(IRealTimeGraph graph) + { + graph.EnableToolBar = false; + _fullScreenGraphIndex = Graphs.IndexOf(graph); + Graphs.Remove(graph); + FullScreenGraph = graph; + } + private void ToggleCamera(CaptureDevice captureDevice) { if (captureDevice.Device != null) @@ -636,6 +673,12 @@ namespace Tango.MachineStudio.Developer.ViewModels private void StartJob() { + if (MachineOperator == null || MachineOperator.State != TransportComponentState.Connected) + { + _notification.ShowError("No machine connected. Could not execute the specified job."); + return; + } + RunningJobRemainingTime = TimeSpan.Zero; RunningJobProgress = 0; IsJobFailed = false; @@ -887,7 +930,7 @@ namespace Tango.MachineStudio.Developer.ViewModels #endregion - #region Public Events + #region Public Methods /// <summary> /// Add sensor graph from available sensors to displayed graphs. @@ -932,10 +975,14 @@ namespace Tango.MachineStudio.Developer.ViewModels graphControl.InnerGraph.Minimum = sensor.Min; graphControl.InnerGraph.Maximum = sensor.Max; graphControl.InnerGraph.MaxPoints = Common.Helpers.GraphsHelper.GetMaxPoints(sensor.PointsPerFrame); - graphControl.GraphRemoveButtonPressed += (sender, __) => + graphControl.GraphRemoveButtonPressed += (sender, _) => { RemoveGraph(sender as IRealTimeGraph); }; + graphControl.GraphFullScreenButtonPressed += (sender, _) => + { + StartFullScreenGraph(sender as IRealTimeGraph); + }; Graphs.Add(graphControl); AvailableSensors.Remove(sensor); |
