diff options
Diffstat (limited to 'Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LayoutViewVM.cs')
| -rw-r--r-- | Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LayoutViewVM.cs | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LayoutViewVM.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LayoutViewVM.cs index 701ff4b79..4e6621b9e 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LayoutViewVM.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LayoutViewVM.cs @@ -5,17 +5,22 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.Core.Commands; +using Tango.Core.Threading; using Tango.FSE.Common; using Tango.FSE.Common.Navigation; using Tango.FSE.Common.Notifications; using Tango.FSE.UI.Panes; using Tango.Integration.ExternalBridge; using Tango.SharedUI.Helpers; +using Tango.Transport; namespace Tango.FSE.UI.ViewModels { public class LayoutViewVM : FSEViewModel { + private ActionTimer _transportOutActionTimer; + private ActionTimer _transportInActionTimer; + private bool _isConnectionPaneOpened; public bool IsConnectionPaneOpened { @@ -37,6 +42,13 @@ namespace Tango.FSE.UI.ViewModels set { _connectedMachinePaneVM = value; RaisePropertyChangedAuto(); } } + private LogViewerPaneVM _logViewPaneVM; + public LogViewerPaneVM LogViewerPaneVM + { + get { return _logViewPaneVM; } + set { _logViewPaneVM = value; RaisePropertyChangedAuto(); } + } + private bool _isMenuOpened; public bool IsMenuOpened { @@ -44,6 +56,27 @@ namespace Tango.FSE.UI.ViewModels set { _isMenuOpened = value; RaisePropertyChangedAuto(); } } + private bool _isLogsOpened; + public bool IsLogsOpened + { + get { return _isLogsOpened; } + set { _isLogsOpened = value; RaisePropertyChangedAuto(); } + } + + private bool _transportOut; + public bool TransportOut + { + get { return _transportOut; } + set { _transportOut = value; RaisePropertyChanged(nameof(TransportOut)); } + } + + private bool _transportIn; + public bool TransportIn + { + get { return _transportIn; } + set { _transportIn = value; RaisePropertyChanged(nameof(TransportIn)); } + } + public RelayCommand ToggleConnectionPaneCommand { get; set; } public RelayCommand LogoutCommand { get; set; } @@ -57,7 +90,40 @@ namespace Tango.FSE.UI.ViewModels ConnectedMachinePaneVM = new ConnectedMachinePaneVM(); ConnectedMachinePaneVM.DisconnectedFromMachine += ConnectedMachinePaneVM_DisconnectedFromMachine; + LogViewerPaneVM = new LogViewerPaneVM(); + LogoutCommand = new RelayCommand(Logout); + + _transportOutActionTimer = new ActionTimer(TimeSpan.FromMilliseconds(50)); + _transportInActionTimer = new ActionTimer(TimeSpan.FromMilliseconds(50)); + } + + private void MachineProvider_MachineDisconnected(object sender, Common.Connection.MachineDisconnectedEventArgs e) + { + if (e.MachineOperator.Adapter != null) + { + e.MachineOperator.Adapter.PropertyChanged -= Adapter_PropertyChanged; + } + } + + private void MachineProvider_MachineConnected(object sender, Common.Connection.MachineConnectedEventArgs e) + { + e.MachineOperator.Adapter.PropertyChanged -= Adapter_PropertyChanged; + e.MachineOperator.Adapter.PropertyChanged += Adapter_PropertyChanged; + } + + private void Adapter_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) + { + if (e.PropertyName == nameof(ITransportAdapter.TotalBytesSent)) + { + TransportOut = true; + _transportOutActionTimer.ResetReplace(() => TransportOut = false); + } + else if (e.PropertyName == nameof(ITransportAdapter.TotalBytesReceived)) + { + TransportIn = true; + _transportInActionTimer.ResetReplace(() => TransportIn = false); + } } private async void ConnectedMachinePaneVM_DisconnectedFromMachine(object sender, EventArgs e) @@ -99,6 +165,9 @@ namespace Tango.FSE.UI.ViewModels public override void OnApplicationStarted() { DiagnosticsProvider.FrameReceived += DiagnosticsProvider_FrameReceived; + + MachineProvider.MachineDisconnected += MachineProvider_MachineDisconnected; + MachineProvider.MachineConnected += MachineProvider_MachineConnected; } private void DiagnosticsProvider_FrameReceived(object sender, Common.Diagnostics.DiagnosticsFrameReceivedEventArgs e) |
