From a47bbe8211c4b7a02c6974cba017d77ea31ffc37 Mon Sep 17 00:00:00 2001 From: Roy Date: Sun, 5 Mar 2023 22:47:23 +0200 Subject: Dialog Adaptations. Separate Job View. Machine Status View Start. EurekaTouchPanel. --- .../Tango.PPC.UI/ViewModels/MachineStatusViewVM.cs | 101 +++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineStatusViewVM.cs (limited to 'Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineStatusViewVM.cs') diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineStatusViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineStatusViewVM.cs new file mode 100644 index 000000000..a0d6e2955 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineStatusViewVM.cs @@ -0,0 +1,101 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL.Entities; +using Tango.Core.Commands; +using Tango.Integration.Operation; +using Tango.PPC.Common; + +namespace Tango.PPC.UI.ViewModels +{ + public class MachineStatusViewVM : PPCViewModel + { + private JobHandler _handler; + + private Job _job; + /// + /// Gets or sets the job. + /// + public Job Job + { + get { return _job; } + set { _job = value; RaisePropertyChangedAuto(); } + } + + private RunningJobStatus _runningJobStatus; + /// + /// Gets or sets the running job status. + /// + public RunningJobStatus RunningJobStatus + { + get { return _runningJobStatus; } + set { _runningJobStatus = value; RaisePropertyChangedAuto(); } + } + + public RelayCommand StopCommand { get; set; } + + public MachineStatusViewVM() + { + StopCommand = new RelayCommand(StopJob); + } + + public override void OnApplicationStarted() + { + MachineProvider.MachineOperator.PrintingStarted += MachineOperator_PrintingStarted; + } + + private void MachineOperator_PrintingStarted(object sender, PrintingEventArgs e) + { + _handler = e.JobHandler; + Job = e.Job; + e.JobHandler.StatusChanged += JobHandler_StatusChanged; + //e.JobHandler.SpoolChangeRequired += JobHandler_SpoolChangeRequired; + e.JobHandler.Stopped += JobHandler_Stopped; + //e.JobHandler.CanCancelChanged += JobHandler_CanCancelChanged; + } + + private void JobHandler_Stopped(object sender, EventArgs e) + { + if (_handler != null) + { + _handler.StatusChanged -= JobHandler_StatusChanged; + //_handler.SpoolChangeRequired -= JobHandler_SpoolChangeRequired; + _handler.Stopped -= JobHandler_Stopped; + } + } + + private void JobHandler_StatusChanged(object sender, RunningJobStatus e) + { + InvokeUI(() => + { + RunningJobStatus = e; + }); + } + + #region Public Methods + + /// + /// Toggles the application technician mode. + /// + public void ToggleTechnicianMode() + { + if (!ApplicationManager.IsInTechnicianMode) + { + ApplicationManager.EnterTechnicianMode(); + } + else + { + ApplicationManager.ExitTechnicianMode(); + } + } + + private void StopJob() + { + _handler?.Cancel(); + } + + #endregion + } +} -- cgit v1.3.1