From e86fb1e3f847ee5646fe40b52bcf478bc9ce4b64 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Mon, 31 Dec 2018 15:59:02 +0200 Subject: Added Trigger for machine delete to erase configuration & IDS Packs also! Implemented Machine creation dialog in machine designer. --- .../ViewModels/MachineCreationDialogVM.cs | 17 +++++++++++ .../ViewModels/MainViewVM.cs | 35 +++++++++++++++++----- 2 files changed, 44 insertions(+), 8 deletions(-) create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineCreationDialogVM.cs (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels') diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineCreationDialogVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineCreationDialogVM.cs new file mode 100644 index 000000000..0f6ab3314 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineCreationDialogVM.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL.Entities; +using Tango.SharedUI; + +namespace Tango.MachineStudio.MachineDesigner.ViewModels +{ + public class MachineCreationDialogVM : DialogViewVM + { + public List MachineVersions { get; set; } + + public MachineVersion SelectedMachineVersion { get; set; } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs index 2f77b0d14..33e5b4ad7 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs @@ -192,9 +192,9 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels #region Application Ready - public override void OnApplicationReady() + public override async void OnApplicationReady() { - + MachinesAdapter.MachineVersions = (await MachinesAdapter.Context.MachineVersions.ToListAsync()).ToObservableCollection(); } #endregion @@ -349,7 +349,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels InvalidateRelayCommands(); } - private async void LoadSelectedMachine(bool newMachine = false, bool clone = false) + private async void LoadSelectedMachine(bool newMachine = false, bool clone = false, MachineVersion selectedVersion = null) { using (_notification.PushTaskItem("Loading machine details...")) { @@ -389,16 +389,24 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels if (clone) { ActiveMachine = ActiveMachine.Clone(); - ActiveMachine.Name = "Untitled"; + ActiveMachine.Name = ""; ActiveMachine.SerialNumber = ""; ActiveMachineAdapter.Context.Machines.Add(ActiveMachine); } } else { - ActiveMachine = new Machine(); - ActiveMachine.Configuration = new Configuration(); - ActiveMachineAdapter.Context.Machines.Add(ActiveMachine); + if (selectedVersion == null) + { + ActiveMachine = new Machine(); + ActiveMachine.Configuration = new Configuration(); + ActiveMachineAdapter.Context.Machines.Add(ActiveMachine); + } + else + { + ActiveMachine = selectedVersion.CreatePrototypeMachine(ActiveMachineAdapter.Context); + ActiveMachineAdapter.Context.Machines.Add(ActiveMachine); + } } View.NavigateTo(MachineDesignerNavigationView.MachineDetailsView); @@ -563,7 +571,18 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels private void AddNewMachine() { - LoadSelectedMachine(true); + MachineCreationDialogVM vm = new MachineCreationDialogVM(); + vm.MachineVersions = MachinesAdapter.MachineVersions.ToList(); + _notification.ShowModalDialog(vm, (x) => + { + if (String.IsNullOrWhiteSpace(vm.SelectedMachineVersion.PrototypeMachineData)) + { + _notification.ShowError("The selected version does not contain any prototype machine data."); + return; + } + + LoadSelectedMachine(true, false, vm.SelectedMachineVersion); + }, () => { }); } private async void RemoveSelectedMachine() -- cgit v1.3.1