From d6f46df0e9ccd08276912bcdcded246de0bc4447 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Thu, 15 Mar 2018 12:29:05 +0200 Subject: Implemented virtual machine selection when connecting via USB. --- .../ViewModels/MachineSerialViewVM.cs | 32 ++++++++++++++++++++ .../ViewModels/MainViewVM.cs | 35 ++++++++++++++-------- 2 files changed, 55 insertions(+), 12 deletions(-) create mode 100644 Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineSerialViewVM.cs (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels') diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineSerialViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineSerialViewVM.cs new file mode 100644 index 000000000..219bd9e63 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineSerialViewVM.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL; +using Tango.BL.Entities; +using Tango.Core.Commands; +using Tango.MachineStudio.Common.Notifications; +using Tango.Settings; + +namespace Tango.MachineStudio.UI.ViewModels +{ + public class MachineSerialViewVM : DialogViewVM + { + private Machine _selectedMachine; + + public Machine SelectedMachine + { + get { return _selectedMachine; } + set { _selectedMachine = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } + } + + public RelayCommand OKCommand { get; set; } + + public MachineSerialViewVM() + { + OKCommand = new RelayCommand(Accept, () => SelectedMachine != null); + SelectedMachine = ObservablesEntitiesAdapter.Instance.Machines.SingleOrDefault(x => x.SerialNumber == SettingsManager.Default.MachineStudio.LastVirtualMachineSerialNumber); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs index 57f1d704c..84c4e2dd3 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs @@ -26,6 +26,7 @@ using Tango.MachineStudio.UI.SupervisingController; using Tango.MachineStudio.UI.Views; using Tango.MachineStudio.UI.Windows; using Tango.PMR.Stubs; +using Tango.Settings; using Tango.SharedUI; using Tango.SharedUI.Helpers; using Tango.Transport.Adapters; @@ -333,21 +334,31 @@ namespace Tango.MachineStudio.UI.ViewModels } else { - using (NotificationProvider.PushTaskItem("Connecting to " + x.SelectedMachine.ToString() + "...")) + _notificationProvider.ShowModalDialog(async (vm) => { - try + if (vm.SelectedMachine != null) { - await x.SelectedMachine.Connect(); - ApplicationManager.ConnectedMachine = x.SelectedMachine; - } - catch (Exception ex) - { - logManager.Log(ex); - _notificationProvider.ShowError(ex.Message); - } + using (NotificationProvider.PushTaskItem("Connecting to " + x.SelectedMachine.ToString() + "...")) + { + try + { + await x.SelectedMachine.Connect(); + x.SelectedMachine.SerialNumber = vm.SelectedMachine.SerialNumber; + ApplicationManager.ConnectedMachine = x.SelectedMachine; - InvalidateRelayCommands(); - } + SettingsManager.Default.MachineStudio.LastVirtualMachineSerialNumber = vm.SelectedMachine.SerialNumber; + SettingsManager.SaveDefaultSettings(); + } + catch (Exception ex) + { + logManager.Log(ex); + _notificationProvider.ShowError(ex.Message); + } + + InvalidateRelayCommands(); + } + } + }); } InvalidateRelayCommands(); -- cgit v1.3.1