Files
m.heisig 2d11c43579 Added minimal functionality for Robot teaching
- Added minimal HMI
- Added possibility to open and close all chamber doors
2026-01-17 09:20:39 +01:00

1 line
3.4 KiB
JavaScript

import{Popup}from"./Popup.js";export class SettingsPopup extends Popup{constructor(element,name,control){super(element,name,control);let resetButton=TcHmi.ControlFactory.createEx("TcHmi.Controls.Beckhoff.TcHmiButton",`${this.__parentControl.getId()}.${this.__name}.resetButton`,{"data-tchmi-height":30,"data-tchmi-width-mode":"Content","data-tchmi-min-width":60,"data-tchmi-text-padding":{left:7,right:7},"data-tchmi-text":"%l%Control::TcHmi.Controls.Beckhoff.TcHmiEventGrid::Button_Text_Reset_Config%/l%","data-tchmi-tooltip":"%l%Control::TcHmi.Controls.Beckhoff.TcHmiEventGrid::Button_Tooltip_Reset_Config%/l%","data-tchmi-is-enabled":!1},this.__parentControl),okButton=TcHmi.ControlFactory.createEx("TcHmi.Controls.Beckhoff.TcHmiButton",`${this.__parentControl.getId()}.${this.__name}.okButton`,{"data-tchmi-height":30,"data-tchmi-width-mode":"Content","data-tchmi-min-width":60,"data-tchmi-text-padding":{left:7,right:7},"data-tchmi-text":"%l%Control::TcHmi.Controls.Beckhoff.TcHmiEventGrid::Button_Text_Ok%/l%","data-tchmi-tooltip":"%l%Control::TcHmi.Controls.Beckhoff.TcHmiEventGrid::Button_Tooltip_Ok%/l%"},this.__parentControl),cancelButton=TcHmi.ControlFactory.createEx("TcHmi.Controls.Beckhoff.TcHmiButton",`${this.__parentControl.getId()}.${this.__name}.cancelButton`,{"data-tchmi-height":30,"data-tchmi-width-mode":"Content","data-tchmi-min-width":60,"data-tchmi-text-padding":{left:7,right:7},"data-tchmi-text":"%l%Control::TcHmi.Controls.Beckhoff.TcHmiEventGrid::Button_Text_Cancel%/l%","data-tchmi-tooltip":"%l%Control::TcHmi.Controls.Beckhoff.TcHmiEventGrid::Button_Tooltip_Cancel%/l%"},this.__parentControl);if(!resetButton||!okButton||!cancelButton)throw new Error("Could not create controls for SettingsPopup.");const resetButtonElement=resetButton.getElement()[0];resetButtonElement.classList.add("align-left"),this.__elementFooter.appendChild(resetButtonElement),this.__eventDestroyers.push(TcHmi.EventProvider.register(resetButton.getId()+".onPressed",()=>{this.__onButtonPressed(this.__resetHandlers,!1)})),this.__elementFooter.appendChild(okButton.getElement()[0]),this.__eventDestroyers.push(TcHmi.EventProvider.register(okButton.getId()+".onPressed",()=>{this.__onButtonPressed(this.__okHandlers,!0)})),this.__elementFooter.appendChild(cancelButton.getElement()[0]),this.__eventDestroyers.push(TcHmi.EventProvider.register(cancelButton.getId()+".onPressed",()=>{this.__onButtonPressed(this.__cancelHandlers,!0)})),this.__resetButton=resetButton}__resetButton;__resetHandlers=[];__okHandlers=[];__cancelHandlers=[];__updateRequired=!0;__onButtonPressed(handlers,hide){this.__updateRequired=!0;for(let i=0,ii=handlers.length;i<ii;i++)!1===handlers[i]()&&(hide=!1);hide&&this.hide()}registerResetButtonHandler(handler){return this.__resetHandlers.push(handler),()=>{let index=this.__resetHandlers.indexOf(handler);-1!==index&&this.__resetHandlers.splice(index,1)}}registerOkButtonHandler(handler){return this.__okHandlers.push(handler),()=>{let index=this.__okHandlers.indexOf(handler);-1!==index&&this.__okHandlers.splice(index,1)}}registerCancelButtonHandler(handler){return this.__cancelHandlers.push(handler),()=>{let index=this.__cancelHandlers.indexOf(handler);-1!==index&&this.__cancelHandlers.splice(index,1)}}update(settings,resetable=!1){this.__settings=tchmi_clone_object(settings),this.__updateRequired=!1,this.__resetButton.setIsEnabled(resetable)}getSettings(){return this.__settings}requiresUpdate(){return this.__updateRequired}}