aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2019-09-25 18:36:12 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2019-09-25 18:36:12 +0300
commit60186d68fdbb9c3cc1a6f83c12228db90b48488d (patch)
treeb1e0b8f45ac25af28c15882b60587ba8e225cee0 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models
parente6febb2cda232a2c89467690d9e1fbb82423618a (diff)
parent051e3ca3f4039ec0d23408d9940b90bde1b4e857 (diff)
downloadTango-60186d68fdbb9c3cc1a6f83c12228db90b48488d.tar.gz
Tango-60186d68fdbb9c3cc1a6f83c12228db90b48488d.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareCollection.cs27
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareComponent.cs27
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareParameter.cs122
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);
+ }
+ }
+}