diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-07-15 13:22:53 +0300 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-07-15 13:22:53 +0300 |
| commit | c6b01f3e683b83fb0d6bf080efbd24a9a732b9f5 (patch) | |
| tree | 900238695f8c1e0e2ea1f5786e3b847fcfa1ba43 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems | |
| parent | df9b2580669472d446e109dff88bdfa247b23b1e (diff) | |
| download | Tango-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')
2 files changed, 134 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; + } + + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs index 24ca57a4a..ff75c1644 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs @@ -34,6 +34,7 @@ namespace Tango.MachineStudio.Technician.TechItems [XmlInclude(typeof(WinderItem))] [XmlInclude(typeof(DancerItem))] [XmlInclude(typeof(SpeedSensorItem))] + [XmlInclude(typeof(ProcessParametersItem))] public abstract class TechItem : ExtendedObject { /// <summary> |
