diff options
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs | 126 |
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); |
