aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs35
1 files changed, 27 insertions, 8 deletions
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<MachineCreationDialogVM, Views.MachineCreationDialog>(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()