aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2018-08-04 15:27:45 +0300
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2018-08-04 15:27:45 +0300
commitdf9efa378c7741e325b0de775cf7b33634b9f8b3 (patch)
tree6b21faff08f9fbbf1e6e158ccab4ea3f81b60371 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels
parentdb9119d86fa9e2efd2c3dfab8ac2c49c2ee4da70 (diff)
downloadTango-df9efa378c7741e325b0de775cf7b33634b9f8b3.tar.gz
Tango-df9efa378c7741e325b0de775cf7b33634b9f8b3.zip
Implemented Blowers, Break Sensors in Machine Versions Module.
Removed all unnecessary Observable entities extension methods.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs126
1 files changed, 124 insertions, 2 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs
index f91badebe..3dd4e62a3 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs
@@ -96,6 +96,34 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels
set { _selectedSpeedSensorTypes = value; RaisePropertyChangedAuto(); }
}
+ private SelectedObjectCollection<HardwareBlowerType> _blowerTypes;
+ public SelectedObjectCollection<HardwareBlowerType> BlowerTypes
+ {
+ get { return _blowerTypes; }
+ set { _blowerTypes = value; RaisePropertyChangedAuto(); }
+ }
+
+ private ObservableCollection<HardwareBlowerType> _selectedBlowerTypes;
+ public ObservableCollection<HardwareBlowerType> SelectedBlowerTypes
+ {
+ get { return _selectedBlowerTypes; }
+ set { _selectedBlowerTypes = value; RaisePropertyChangedAuto(); }
+ }
+
+ private SelectedObjectCollection<HardwareBreakSensorType> _breakSensorTypes;
+ public SelectedObjectCollection<HardwareBreakSensorType> BreakSensorTypes
+ {
+ get { return _breakSensorTypes; }
+ set { _breakSensorTypes = value; RaisePropertyChangedAuto(); }
+ }
+
+ private ObservableCollection<HardwareBreakSensorType> _selectedBreakSensorTypes;
+ public ObservableCollection<HardwareBreakSensorType> SelectedBreakSensorTypes
+ {
+ get { return _selectedBreakSensorTypes; }
+ set { _selectedBreakSensorTypes = value; RaisePropertyChangedAuto(); }
+ }
+
private HardwareVersion _selectedVersion;
public HardwareVersion SelectedVersion
{
@@ -159,7 +187,7 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels
CurrentVersion = new HardwareVersion();
CreateTemplate(CurrentVersion);
- CopyParametersCommand = new RelayCommand(CopyParameters,(x) => SelectedVersion != null && SelectedHardwareObjectType != null);
+ CopyParametersCommand = new RelayCommand(CopyParameters, (x) => SelectedVersion != null && SelectedHardwareObjectType != null);
CloneCommand = new RelayCommand(CloneCurrentVersion, () => SelectedVersion != null);
}
@@ -188,6 +216,14 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels
{
target = CurrentVersion.HardwareSpeedSensors.SingleOrDefault(x => x.HardwareSpeedSensorType == source);
}
+ else if (source is HardwareBlowerType)
+ {
+ target = CurrentVersion.HardwareBlowers.SingleOrDefault(x => x.HardwareBlowerType == source);
+ }
+ else if (source is HardwareBreakSensorType)
+ {
+ target = CurrentVersion.HardwareBreakSensors.SingleOrDefault(x => x.HardwareBreakSensorType == source);
+ }
target.MapPrimitivesTo(SelectedHardwareObject);
}
@@ -276,6 +312,38 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels
SelectedHardwareObject = hardwareObj;
}
}
+ else if (SelectedHardwareObjectType is SelectedObject<HardwareBlowerType>)
+ {
+ var type = (SelectedHardwareObjectType as SelectedObject<HardwareBlowerType>).Data;
+ var hardwareObj = CurrentVersion.HardwareBlowers.SingleOrDefault(x => x.HardwareBlowerType == type);
+
+ if (hardwareObj != null)
+ {
+ SelectedHardwareObject = hardwareObj;
+ }
+ else
+ {
+ hardwareObj = new HardwareBlower() { HardwareBlowerType = type };
+ CurrentVersion.HardwareBlowers.Add(hardwareObj);
+ SelectedHardwareObject = hardwareObj;
+ }
+ }
+ else if (SelectedHardwareObjectType is SelectedObject<HardwareBreakSensorType>)
+ {
+ var type = (SelectedHardwareObjectType as SelectedObject<HardwareBreakSensorType>).Data;
+ var hardwareObj = CurrentVersion.HardwareBreakSensors.SingleOrDefault(x => x.HardwareBreakSensorType == type);
+
+ if (hardwareObj != null)
+ {
+ SelectedHardwareObject = hardwareObj;
+ }
+ else
+ {
+ hardwareObj = new HardwareBreakSensor() { HardwareBreakSensorType = type };
+ CurrentVersion.HardwareBreakSensors.Add(hardwareObj);
+ SelectedHardwareObject = hardwareObj;
+ }
+ }
}
}
@@ -288,6 +356,8 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels
SelectedPidControlTypes = new ObservableCollection<HardwarePidControlType>();
SelectedWinderTypes = new ObservableCollection<HardwareWinderType>();
SelectedSpeedSensorTypes = new ObservableCollection<HardwareSpeedSensorType>();
+ SelectedBlowerTypes = new ObservableCollection<HardwareBlowerType>();
+ SelectedBreakSensorTypes = new ObservableCollection<HardwareBreakSensorType>();
}
else
{
@@ -296,6 +366,8 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels
SelectedPidControlTypes = version.HardwarePidControls.Select(x => x.HardwarePidControlType).ToObservableCollection();
SelectedWinderTypes = version.HardwareWinders.Select(x => x.HardwareWinderType).ToObservableCollection();
SelectedSpeedSensorTypes = version.HardwareSpeedSensors.Select(x => x.HardwareSpeedSensorType).ToObservableCollection();
+ SelectedBlowerTypes = version.HardwareBlowers.Select(x => x.HardwareBlowerType).ToObservableCollection();
+ SelectedBreakSensorTypes = version.HardwareBreakSensors.Select(x => x.HardwareBreakSensorType).ToObservableCollection();
}
MotorTypes = new SelectedObjectCollection<HardwareMotorType>(Adapter.HardwareMotorTypes, SelectedMotorTypes);
@@ -303,6 +375,8 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels
PidControlTypes = new SelectedObjectCollection<HardwarePidControlType>(Adapter.HardwarePidControlTypes, SelectedPidControlTypes);
WinderTypes = new SelectedObjectCollection<HardwareWinderType>(Adapter.HardwareWinderTypes, SelectedWinderTypes);
SpeedSensorTypes = new SelectedObjectCollection<HardwareSpeedSensorType>(Adapter.HardwareSpeedSensorTypes, SelectedSpeedSensorTypes);
+ BlowerTypes = new SelectedObjectCollection<HardwareBlowerType>(Adapter.HardwareBlowerTypes, SelectedBlowerTypes);
+ BreakSensorTypes = new SelectedObjectCollection<HardwareBreakSensorType>(Adapter.HardwareBreakSensorTypes, SelectedBreakSensorTypes);
}
private void OnSelectedVersionChanged()
@@ -363,6 +437,8 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels
realVersion.HardwarePidControls.ToList().Where(x => !SelectedPidControlTypes.Contains(x.HardwarePidControlType)).ToList().ForEach(x => realVersion.HardwarePidControls.Remove(x));
realVersion.HardwareWinders.ToList().Where(x => !SelectedWinderTypes.Contains(x.HardwareWinderType)).ToList().ForEach(x => realVersion.HardwareWinders.Remove(x));
realVersion.HardwareSpeedSensors.ToList().Where(x => !SelectedSpeedSensorTypes.Contains(x.HardwareSpeedSensorType)).ToList().ForEach(x => realVersion.HardwareSpeedSensors.Remove(x));
+ realVersion.HardwareBlowers.ToList().Where(x => !SelectedBlowerTypes.Contains(x.HardwareBlowerType)).ToList().ForEach(x => realVersion.HardwareBlowers.Remove(x));
+ realVersion.HardwareBreakSensors.ToList().Where(x => !SelectedBreakSensorTypes.Contains(x.HardwareBreakSensorType)).ToList().ForEach(x => realVersion.HardwareBreakSensors.Remove(x));
}
else
{
@@ -376,12 +452,16 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels
realVersion.HardwarePidControls.ToList().ForEach(x => x.DefferedDelete(Adapter.Context));
realVersion.HardwareWinders.ToList().ForEach(x => x.DefferedDelete(Adapter.Context));
realVersion.HardwareSpeedSensors.ToList().ForEach(x => x.DefferedDelete(Adapter.Context));
+ realVersion.HardwareBlowers.ToList().ForEach(x => x.DefferedDelete(Adapter.Context));
+ realVersion.HardwareBreakSensors.ToList().ForEach(x => x.DefferedDelete(Adapter.Context));
realVersion.HardwareDancers.Clear();
realVersion.HardwareMotors.Clear();
realVersion.HardwarePidControls.Clear();
realVersion.HardwareWinders.Clear();
realVersion.HardwareSpeedSensors.Clear();
+ realVersion.HardwareBlowers.Clear();
+ realVersion.HardwareBreakSensors.Clear();
foreach (var type in SelectedDancerTypes)
{
@@ -472,6 +552,42 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels
});
}
}
+
+ foreach (var type in SelectedBlowerTypes)
+ {
+ var item = CurrentVersion.HardwareBlowers.SingleOrDefault(x => x.HardwareBlowerType == type);
+ if (item != null)
+ {
+ item.HardwareVersionGuid = realVersion.Guid;
+ realVersion.HardwareBlowers.Add(item);
+ }
+ else
+ {
+ realVersion.HardwareBlowers.Add(new HardwareBlower()
+ {
+ HardwareVersionGuid = realVersion.Guid,
+ HardwareBlowerType = type
+ });
+ }
+ }
+
+ foreach (var type in SelectedBreakSensorTypes)
+ {
+ var item = CurrentVersion.HardwareBreakSensors.SingleOrDefault(x => x.HardwareBreakSensorType == type);
+ if (item != null)
+ {
+ item.HardwareVersionGuid = realVersion.Guid;
+ realVersion.HardwareBreakSensors.Add(item);
+ }
+ else
+ {
+ realVersion.HardwareBreakSensors.Add(new HardwareBreakSensor()
+ {
+ HardwareVersionGuid = realVersion.Guid,
+ HardwareBreakSensorType = type
+ });
+ }
+ }
}
@@ -499,7 +615,7 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels
{
using (_notification.PushTaskItem("Cloning hardware configuration..."))
{
- await Task.Factory.StartNew(() =>
+ await Task.Factory.StartNew(() =>
{
var realVersion = CurrentVersion.Clone();
realVersion.Name = name;
@@ -510,18 +626,24 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels
realVersion.HardwarePidControls.ToList().Where(x => !SelectedPidControlTypes.Contains(x.HardwarePidControlType)).ToList().ForEach(x => realVersion.HardwarePidControls.Remove(x));
realVersion.HardwareWinders.ToList().Where(x => !SelectedWinderTypes.Contains(x.HardwareWinderType)).ToList().ForEach(x => realVersion.HardwareWinders.Remove(x));
realVersion.HardwareSpeedSensors.ToList().Where(x => !SelectedSpeedSensorTypes.Contains(x.HardwareSpeedSensorType)).ToList().ForEach(x => realVersion.HardwareSpeedSensors.Remove(x));
+ realVersion.HardwareBlowers.ToList().Where(x => !SelectedBlowerTypes.Contains(x.HardwareBlowerType)).ToList().ForEach(x => realVersion.HardwareBlowers.Remove(x));
+ realVersion.HardwareBreakSensors.ToList().Where(x => !SelectedBreakSensorTypes.Contains(x.HardwareBreakSensorType)).ToList().ForEach(x => realVersion.HardwareBreakSensors.Remove(x));
realVersion.HardwareMotors.ToList().ForEach(x => x.HardwareVersionGuid = realVersion.Guid);
realVersion.HardwareDancers.ToList().ForEach(x => x.HardwareVersionGuid = realVersion.Guid);
realVersion.HardwarePidControls.ToList().ForEach(x => x.HardwareVersionGuid = realVersion.Guid);
realVersion.HardwareWinders.ToList().ForEach(x => x.HardwareVersionGuid = realVersion.Guid);
realVersion.HardwareSpeedSensors.ToList().ForEach(x => x.HardwareVersionGuid = realVersion.Guid);
+ realVersion.HardwareBlowers.ToList().ForEach(x => x.HardwareVersionGuid = realVersion.Guid);
+ realVersion.HardwareBreakSensors.ToList().ForEach(x => x.HardwareVersionGuid = realVersion.Guid);
realVersion.HardwareMotors.ToList().ForEach(x => x.HardwareVersion = realVersion);
realVersion.HardwareDancers.ToList().ForEach(x => x.HardwareVersion = realVersion);
realVersion.HardwarePidControls.ToList().ForEach(x => x.HardwareVersion = realVersion);
realVersion.HardwareWinders.ToList().ForEach(x => x.HardwareVersion = realVersion);
realVersion.HardwareSpeedSensors.ToList().ForEach(x => x.HardwareVersion = realVersion);
+ realVersion.HardwareBlowers.ToList().ForEach(x => x.HardwareVersion = realVersion);
+ realVersion.HardwareBreakSensors.ToList().ForEach(x => x.HardwareVersion = realVersion);
Adapter.Context.HardwareVersions.Add(realVersion);
realVersion.Save(Adapter.Context);