aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs
diff options
context:
space:
mode:
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.cs51
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);