diff options
| author | Victoria Plitt <Victoria.Plitt@twine-s.com> | 2019-09-25 18:29:12 +0300 |
|---|---|---|
| committer | Victoria Plitt <Victoria.Plitt@twine-s.com> | 2019-09-25 18:29:12 +0300 |
| commit | d990cf35a8816c7447fef4552ee83d041466636d (patch) | |
| tree | ca9ce9e9a729d204c4e0726710873f9cfad9b749 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models | |
| parent | 0286fc4f7675459d660ec7a1b6a6a149376ad74e (diff) | |
| download | Tango-d990cf35a8816c7447fef4552ee83d041466636d.tar.gz Tango-d990cf35a8816c7447fef4552ee83d041466636d.zip | |
Implemented Hardware Configuration Tab on Machine Designer !!!
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); + } + } +} |
