diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2019-10-03 10:04:11 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2019-10-03 10:04:11 +0300 |
| commit | 2ccc5a2e78f306d3c434c764e34509d4db92d8d8 (patch) | |
| tree | 399f8c061fa698c36d06da9ebc101d65b02df26e /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models | |
| parent | b9e2c008322ce474ce6e0b18da9a786c128de8d9 (diff) | |
| parent | a6496a02892d653a70bc9e0d37856b1a7d3cd74b (diff) | |
| download | Tango-2ccc5a2e78f306d3c434c764e34509d4db92d8d8.tar.gz Tango-2ccc5a2e78f306d3c434c764e34509d4db92d8d8.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models')
3 files changed, 176 insertions, 0 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareCollection.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareCollection.cs new file mode 100644 index 000000000..765bc9dfd --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareCollection.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core; + +namespace Tango.MachineStudio.MachineDesigner.Models +{ + public class HardwareCollection : ExtendedObject + { + public String CollectionName { get; set; } + + public SynchronizedObservableCollection<HardwareComponent> Components { get; set; } + public bool HasDifferences + { + get + { + return Components.Any(item => item.HasDifferences); + } + } + public HardwareCollection() + { + Components = new SynchronizedObservableCollection<HardwareComponent>(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareComponent.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareComponent.cs new file mode 100644 index 000000000..d03428ce5 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareComponent.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core; + +namespace Tango.MachineStudio.MachineDesigner.Models +{ + public class HardwareComponent : ExtendedObject + { + public String ComponentName { get; set; } + public String Description { get; set; } + public SynchronizedObservableCollection<HardwareParameter> Properties { get; set; } + public bool HasDifferences + { + get + { + return Properties.Any(item => item.IsDifferent); + } + } + public HardwareComponent() + { + Properties = new SynchronizedObservableCollection<HardwareParameter>(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareParameter.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareParameter.cs new file mode 100644 index 000000000..33dbcad71 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareParameter.cs @@ -0,0 +1,122 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core; +using Tango.Core.Commands; + +namespace Tango.MachineStudio.MachineDesigner.Models +{ + public class HardwareParameter : ExtendedObject + { + public event EventHandler Selected; + + public HardwareComponent Component { get; set; } + + public RelayCommand DeleteCommand { get; set; } + + public String PropertyName { get; set; } + + private Object _defaultValue; + public Object DefaultValue + { + get { return _defaultValue; } + set + { + _defaultValue = value; + } + } + + public Type Type + { + get { return DefaultValue.GetType(); } + } + // updated after editing + private Object _actualValue = null; + public Object ActualValue + { + get { return _actualValue; } + set + { + _actualValue = value; + RaisePropertyChangedAuto(); + RaisePropertyChanged(nameof(IsDifferent)); + RaisePropertyChanged(nameof(IsValuesMatched)); + } + } + + // displayed during editing + private Object _editableValue = null; + public Object EditableValue + { + get { return _editableValue; } + set + { + _editableValue = value; + RaisePropertyChangedAuto(); + } + } + + private bool _isSelected; + public bool IsSelected + { + get { return _isSelected; } + set + { + _isSelected = value; + + OnIsSelectedChanged(); + + RaisePropertyChangedAuto(); + if (_isSelected) + { + Selected?.Invoke(this, new EventArgs()); + } + } + } + + + private void OnIsSelectedChanged() + { + if (IsSelected) + { + EditableValue = ActualValue != null ? ActualValue : DefaultValue; + } + else + { + if (EditableValue != null) + { + ActualValue = EditableValue; + } + } + } + + public bool IsDifferent + { + get + { + return (ActualValue != null); + } + } + + public bool IsValuesMatched + { + get + { + return ActualValue != null && ActualValue.ToString() == DefaultValue.ToString(); + } + } + + public void DeleteValue() + { + ActualValue = null; + EditableValue = null; + } + + public HardwareParameter() + { + DeleteCommand = new RelayCommand(DeleteValue); + } + } +} |
