aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ProcessParametersItem.cs
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-07-15 13:22:53 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-07-15 13:22:53 +0300
commitc6b01f3e683b83fb0d6bf080efbd24a9a732b9f5 (patch)
tree900238695f8c1e0e2ea1f5786e3b847fcfa1ba43 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ProcessParametersItem.cs
parentdf9b2580669472d446e109dff88bdfa247b23b1e (diff)
downloadTango-c6b01f3e683b83fb0d6bf080efbd24a9a732b9f5.tar.gz
Tango-c6b01f3e683b83fb0d6bf080efbd24a9a732b9f5.zip
Implemented process parameters item on machine studio tech board.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ProcessParametersItem.cs')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ProcessParametersItem.cs133
1 files changed, 133 insertions, 0 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ProcessParametersItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ProcessParametersItem.cs
new file mode 100644
index 000000000..a6d3ae8f0
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ProcessParametersItem.cs
@@ -0,0 +1,133 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Media;
+using System.Xml.Serialization;
+using Tango.BL.Entities;
+using Tango.Core.Commands;
+using Tango.SharedUI.Helpers;
+
+namespace Tango.MachineStudio.Technician.TechItems
+{
+ /// <summary>
+ /// Represents a process parameters table item.
+ /// </summary>
+ /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" />
+ [TechItem(20)]
+ public class ProcessParametersItem : TechItem
+ {
+ public class ParameterIndex
+ {
+ public String Name { get; set; }
+ public int Index { get; set; }
+ }
+
+ private static int _counter = 0;
+
+ public event EventHandler<ProcessParametersTable> PushParametersPressed;
+
+ private String _displayName;
+ /// <summary>
+ /// Gets or sets the display name.
+ /// </summary>
+ public String DisplayName
+ {
+ get { return _displayName; }
+ set { _displayName = value; RaisePropertyChangedAuto(); }
+ }
+
+ private ProcessParametersTable _processParameters;
+ /// <summary>
+ /// Gets or sets the process parameters.
+ /// </summary>
+ public ProcessParametersTable ProcessParameters
+ {
+ get { return _processParameters; }
+ set { _processParameters = value; RaisePropertyChangedAuto(); }
+ }
+
+ /// <summary>
+ /// Gets or sets the parameters indices.
+ /// </summary>
+ public List<ParameterIndex> ParametersIndices { get; set; }
+
+ /// <summary>
+ /// Gets or sets the push parameters command.
+ /// </summary>
+ [XmlIgnore]
+ public RelayCommand PushParametersCommand { get; set; }
+
+ private Rml _selectedResetRml;
+ /// <summary>
+ /// Gets or sets the selected reset RML.
+ /// </summary>
+ [XmlIgnore]
+ public Rml SelectedResetRML
+ {
+ get { return _selectedResetRml; }
+ set { _selectedResetRml = value; RaisePropertyChangedAuto(); ResetToRMLCommand.RaiseCanExecuteChanged(); }
+ }
+
+
+ /// <summary>
+ /// Gets or sets the push parameters command.
+ /// </summary>
+ [XmlIgnore]
+ public RelayCommand ResetToRMLCommand { get; set; }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="ProcessParametersItem"/> class.
+ /// </summary>
+ public ProcessParametersItem() : base()
+ {
+ ParametersIndices = new List<ParameterIndex>();
+ DisplayName = "Process parameters " + _counter++;
+ Name = "Process Parameters";
+ Description = "Process parameters table";
+ Image = ResourceHelper.GetImageFromResources("Images/process-params.png");
+ ProcessParameters = new ProcessParametersTable();
+ Color = Colors.DodgerBlue;
+ PushParametersCommand = new RelayCommand(() => PushParametersPressed?.Invoke(this, ProcessParameters));
+
+ ResetToRMLCommand = new RelayCommand(ResetToRml, () => SelectedResetRML != null);
+ }
+
+ private void ResetToRml()
+ {
+ if (SelectedResetRML != null)
+ {
+ var group = SelectedResetRML.ProcessParametersTablesGroups.FirstOrDefault(x => x.Active);
+
+ if (group != null)
+ {
+ var table = group.ProcessParametersTables.OrderBy(x => x.TableIndex).FirstOrDefault();
+
+ if (table != null)
+ {
+ ProcessParameters = table.Clone();
+ }
+ }
+ }
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="ProcessParametersItem"/> class.
+ /// </summary>
+ /// <param name="processParameters">The process parameters.</param>
+ public ProcessParametersItem(ProcessParametersTable processParameters) : this()
+ {
+
+ }
+
+ public override TechItem Clone()
+ {
+ ProcessParametersItem cloned = base.Clone() as ProcessParametersItem;
+ cloned.ProcessParameters = ProcessParameters.Clone();
+ cloned.ParametersIndices = ParametersIndices.Select(x => new ParameterIndex() { Index = x.Index, Name = x.Name }).ToList();
+ return cloned;
+ }
+
+ }
+}