aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2018-01-31 10:11:27 +0200
committerShlomo Hecht <shlomo@twine-s.com>2018-01-31 10:11:27 +0200
commitb55483f9f095b699728e0b587ceebfdf6409a48a (patch)
tree1d424d3fc9f75154ecae30806b952fdfb029fce9 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels
parente027cb9fdd17fe3be7bb2c385dc37061a7eea8bb (diff)
parent2fa92ca3654ebb274482f9bad86231028d357e5a (diff)
downloadTango-b55483f9f095b699728e0b587ceebfdf6409a48a.tar.gz
Tango-b55483f9f095b699728e0b587ceebfdf6409a48a.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineVersionDialogVM.cs55
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs155
2 files changed, 184 insertions, 26 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineVersionDialogVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineVersionDialogVM.cs
new file mode 100644
index 000000000..15bebefc8
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineVersionDialogVM.cs
@@ -0,0 +1,55 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.Core.Commands;
+using Tango.Integration.Observables;
+using Tango.MachineStudio.Common.Notifications;
+using Tango.MachineStudio.MachineDesigner.AutoComplete;
+
+namespace Tango.MachineStudio.MachineDesigner.ViewModels
+{
+ public class MachineVersionDialogVM : DialogViewVM
+ {
+ public ObservablesEntitiesAdapter Adapter { get; set; }
+
+ public double Version { get; set; }
+
+ private String _versionName;
+
+ public String VersionName
+ {
+ get { return _versionName; }
+ set { _versionName = value; RaisePropertyChangedAuto(); }
+ }
+
+ private MachineVersion _selectedVersion;
+
+ public MachineVersion SelectedVersion
+ {
+ get { return _selectedVersion; }
+ set
+ {
+ _selectedVersion = value;
+ RaisePropertyChangedAuto();
+ VersionName = value != null ? value.Name : null;
+ Version = value != null ? value.Version : 0;
+ }
+ }
+
+ public RelayCommand AcceptCommand { get; set; }
+
+ public RelayCommand CancelCommand { get; set; }
+
+ public MachineVersionDialogVM()
+ {
+ Adapter = ObservablesEntitiesAdapter.Instance;
+ AcceptCommand = new RelayCommand(() =>
+ {
+ Accept();
+ });
+ CancelCommand = new RelayCommand(Cancel);
+ }
+ }
+}
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 96b66c204..cedbcf9a6 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
@@ -9,14 +9,16 @@ using System.Threading.Tasks;
using System.Windows.Data;
using Tango.Core.Commands;
using Tango.Core.Helpers;
-using Tango.DAL.Observables;
+using Tango.Integration.Observables;
using Tango.MachineStudio.Common.Notifications;
using Tango.SharedUI;
using SimpleValidator.Extensions;
+using Tango.MachineStudio.Common.StudioApplication;
+using Tango.MachineStudio.Common;
namespace Tango.MachineStudio.MachineDesigner.ViewModels
{
- public class MainViewVM : ViewModel
+ public class MainViewVM : ViewModel, IModuleRequestListener
{
private bool _isSaving;
private INotificationProvider _notification;
@@ -123,6 +125,16 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
/// </summary>
public RelayCommand RemoveIdsCommand { get; set; }
+ /// <summary>
+ /// Gets or sets the set version configuration command.
+ /// </summary>
+ public RelayCommand SetVersionConfigurationCommand { get; set; }
+
+ /// <summary>
+ /// Gets or sets the set as default command.
+ /// </summary>
+ public RelayCommand SetAsDefaultCommand { get; set; }
+
#endregion
#region Constructors
@@ -143,6 +155,8 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
SaveCommand = new RelayCommand(Save, (x) => !_isSaving);
AddIdsCommand = new RelayCommand(AddIds, (x) => !_isSaving && Configuration.IdsPacks.Count < 8);
RemoveIdsCommand = new RelayCommand(RemoveIds, (x) => !_isSaving && SelectedIds != null);
+ SetVersionConfigurationCommand = new RelayCommand(SetVersionConfiguration,(x) => !_isSaving);
+ SetAsDefaultCommand = new RelayCommand(SetAsDefaultConfiguration,(x) => !_isSaving);
}
#endregion
@@ -239,7 +253,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
/// <param name="applicationDisplayPanelVersion">The application display panel version.</param>
public void DropTouchPanel(ApplicationDisplayPanelVersion applicationDisplayPanelVersion)
{
- Configuration.ApplicationDisplayPanelVersions = applicationDisplayPanelVersion;
+ Configuration.ApplicationDisplayPanelVersion = applicationDisplayPanelVersion;
Configuration.ApplicationDisplayPanelVersionGuid = applicationDisplayPanelVersion.Guid;
}
@@ -249,7 +263,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
/// <param name="applicationFirmwareVersion">The application firmware version.</param>
public void DropApplicationFirmwareVersion(ApplicationFirmwareVersion applicationFirmwareVersion)
{
- Configuration.ApplicationFirmwareVersions = applicationFirmwareVersion;
+ Configuration.ApplicationFirmwareVersion = applicationFirmwareVersion;
Configuration.ApplicationFirmwareVersionGuid = applicationFirmwareVersion.Guid;
}
@@ -259,7 +273,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
/// <param name="applicationVersion">The application version.</param>
public void DropApplicationVersion(ApplicationVersion applicationVersion)
{
- Configuration.ApplicationVersions = applicationVersion;
+ Configuration.ApplicationVersion = applicationVersion;
Configuration.ApplicationVersionGuid = applicationVersion.Guid;
}
@@ -269,7 +283,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
/// <param name="hardwareVersion">The hardware version.</param>
public void DropHardwareVersion(HardwareVersion hardwareVersion)
{
- Configuration.HardwareVersions = hardwareVersion;
+ Configuration.HardwareVersion = hardwareVersion;
Configuration.HardwareVersionGuid = hardwareVersion.Guid;
}
@@ -279,7 +293,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
/// <param name="embeddedFirmwareVersion">The embedded firmware version.</param>
public void DropEmbeddedFirmware(EmbeddedFirmwareVersion embeddedFirmwareVersion)
{
- Configuration.EmbeddedFirmwareVersions = embeddedFirmwareVersion;
+ Configuration.EmbeddedFirmwareVersion = embeddedFirmwareVersion;
Configuration.EmbeddedFirmwareVersionGuid = embeddedFirmwareVersion.Guid;
}
@@ -289,7 +303,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
/// <param name="embeddedSoftwareVersion">The embedded software version.</param>
public void DropEmbeddedSoftware(EmbeddedSoftwareVersion embeddedSoftwareVersion)
{
- Configuration.EmbeddedSoftwareVersions = embeddedSoftwareVersion;
+ Configuration.EmbeddedSoftwareVersion = embeddedSoftwareVersion;
Configuration.EmbeddedSoftwareVersionGuid = embeddedSoftwareVersion.Guid;
}
@@ -299,7 +313,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
/// <param name="applicationOsVersion">The application os version.</param>
public void DropApplicationOsVersion(ApplicationOsVersion applicationOsVersion)
{
- Configuration.ApplicationOsVersions = applicationOsVersion;
+ Configuration.ApplicationOsVersion = applicationOsVersion;
Configuration.ApplicationVersionGuid = applicationOsVersion.Guid;
}
@@ -310,7 +324,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
/// <param name="idsPack">The ids pack.</param>
public void DropCartridgeType(CartridgeType cartridgeType, IdsPack idsPack)
{
- idsPack.CartridgeTypes = cartridgeType;
+ idsPack.CartridgeType = cartridgeType;
idsPack.CartridgeTypeGuid = cartridgeType.Guid;
}
@@ -321,7 +335,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
/// <param name="idsPack">The ids pack.</param>
public void DropDispenserType(DispenserType dispenserType, IdsPack idsPack)
{
- idsPack.DispenserTypes = dispenserType;
+ idsPack.DispenserType = dispenserType;
idsPack.DispenserTypeGuid = dispenserType.Guid;
}
@@ -332,7 +346,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
/// <param name="idsPack">The ids pack.</param>
public void DropMidTankType(MidTankType midTankType, IdsPack idsPack)
{
- idsPack.MidTankTypes = midTankType;
+ idsPack.MidTankType = midTankType;
idsPack.MidTankTypeGuid = midTankType.Guid;
}
@@ -343,10 +357,22 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
/// <param name="idsPack">The ids pack.</param>
public void DropLiquidType(LiquidType liquidType, IdsPack idsPack)
{
- idsPack.LiquidTypes = liquidType;
+ idsPack.LiquidType = liquidType;
idsPack.LiquidTypeGuid = liquidType.Guid;
}
+ /// <summary>
+ /// Drops the ids formula.
+ /// </summary>
+ /// <param name="idsPackFormula">The ids pack formula.</param>
+ /// <param name="idsPack">The ids pack.</param>
+ /// <exception cref="NotImplementedException"></exception>
+ public void DropIdsFormula(IdsPackFormula idsPackFormula, IdsPack idsPack)
+ {
+ idsPack.IdsPackFormula = idsPackFormula;
+ idsPack.IdsPackFormulaGuid = idsPackFormula.Guid;
+ }
+
#endregion
#region Private Methods
@@ -385,7 +411,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
List<String> errors = new List<string>();
- if (Machine.MachineVersions == null)
+ if (Machine.MachineVersion == null)
{
errors.Add("Machine version is required.");
}
@@ -410,37 +436,37 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
errors.Add("Configuration name is required.");
}
- if (Configuration.ApplicationDisplayPanelVersions == null)
+ if (Configuration.ApplicationDisplayPanelVersion == null)
{
errors.Add("Touch Panel is required.");
}
- if (Configuration.ApplicationFirmwareVersions == null)
+ if (Configuration.ApplicationFirmwareVersion == null)
{
errors.Add("Application firmware is required.");
}
- if (Configuration.ApplicationOsVersions == null)
+ if (Configuration.ApplicationOsVersion == null)
{
errors.Add("Application operation system is required.");
}
- if (Configuration.ApplicationVersions == null)
+ if (Configuration.ApplicationVersion == null)
{
errors.Add("Application version is required.");
}
- if (Configuration.EmbeddedFirmwareVersions == null)
+ if (Configuration.EmbeddedFirmwareVersion == null)
{
errors.Add("Embedded firmware is required.");
}
- if (Configuration.EmbeddedSoftwareVersions == null)
+ if (Configuration.EmbeddedSoftwareVersion == null)
{
errors.Add("Embedded software is required.");
}
- if (Configuration.HardwareVersions == null)
+ if (Configuration.HardwareVersion == null)
{
errors.Add("Hardware version is required.");
}
@@ -452,19 +478,19 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
errors.Add(String.Format("Name is required on IDS pack number '{0}'.", Configuration.IdsPacks.IndexOf(pack) + 1));
continue;
}
- if (pack.CartridgeTypes == null)
+ if (pack.CartridgeType == null)
{
errors.Add(String.Format("Cartridge type is required on IDS pack '{0}'.", pack.Name));
}
- if (pack.DispenserTypes == null)
+ if (pack.DispenserType == null)
{
errors.Add(String.Format("Dispenser type is required on IDS pack '{0}'.", pack.Name));
}
- if (pack.LiquidTypes == null)
+ if (pack.LiquidType == null)
{
errors.Add(String.Format("Liquid type is required on IDS pack '{0}'.", pack.Name));
}
- if (pack.MidTankTypes == null)
+ if (pack.MidTankType == null)
{
errors.Add(String.Format("Mid Tank type is required on IDS pack '{0}'.", pack.Name));
}
@@ -519,7 +545,6 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
machine.Name = Machine.Name;
machine.SerialNumber = Machine.SerialNumber;
- machine.Configuration = Configuration;
machine.Organization = Machine.Organization;
@@ -531,6 +556,12 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
Machine = machine
});
}
+ else
+ {
+ machine.Configuration.DefferedDelete();
+ }
+
+ machine.Configuration = Configuration;
await machine.SaveAsync();
@@ -563,6 +594,78 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
History.Insert(0, machine.Configuration);
}
+ /// <summary>
+ /// Sets the current configuration to the selected machine version default configuration.
+ /// </summary>
+ private void SetVersionConfiguration()
+ {
+ if (Machine.MachineVersion != null)
+ {
+ Configuration = Machine.MachineVersion.DefaultConfiguration.CloneConfiguration();
+ }
+ else
+ {
+ _notification.ShowError("No machine version selected.");
+ }
+ }
+
+ /// <summary>
+ /// Sets the current configuration as a default machine version configuration.
+ /// </summary>
+ private void SetAsDefaultConfiguration()
+ {
+ _notification.ShowModalDialog<MachineVersionDialogVM>(async (vm) =>
+ {
+ try
+ {
+ using (_notification.PushTaskItem("Saving Default Configuration..."))
+ {
+ if (vm.SelectedVersion != null)
+ {
+ vm.SelectedVersion.DefaultConfiguration = Configuration.CloneConfiguration();
+ vm.SelectedVersion.DefaultConfigurationGuid = vm.SelectedVersion.DefaultConfiguration.Guid;
+ await vm.SelectedVersion.SaveAsync();
+ }
+ else
+ {
+ MachineVersion newVersion = new MachineVersion();
+ newVersion.Version = vm.Version;
+ newVersion.Name = vm.VersionName;
+
+ newVersion.DefaultConfiguration = Configuration.CloneConfiguration();
+ newVersion.DefaultConfigurationGuid = newVersion.DefaultConfiguration.Guid;
+ await newVersion.SaveAsync();
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ _notification.ShowError(ex.Message);
+ }
+
+ }, () =>
+ {
+
+ });
+ }
+
+ #endregion
+
+ #region IModuleRequestListener
+
+ /// <summary>
+ /// Called when the request has been made.
+ /// </summary>
+ /// <param name="module">The module instance.</param>
+ /// <param name="args">The arguments.</param>
+ public void OnRequestModule(IStudioModule module, object args)
+ {
+ if (module is MachineDesignerModule)
+ {
+ SelectedMachine = args as Machine;
+ }
+ }
+
#endregion
}
}