svghmi/widget_switch.ysl2
author Edouard Tisserant
Wed, 10 Mar 2021 09:59:18 +0100
branchsvghmi
changeset 3182 a7941f053a83
parent 2969 88988edb2e93
child 3220 ec365ef396b1
permissions -rw-r--r--
Runtime: Added PostStart methot to PLCObject, called after PLC is started, with all libraries and python object already created, and python extensions "Start" methods being called.
This is called before python thread processing py_eval blocks starts. Example purpose: attach additional ressource to web services
// widget_switch.ysl2

template "widget[@type='Switch']", mode="widget_class"
    ||
    class SwitchWidget extends Widget{
        frequency = 5;
        dispatch(value) {
            for(let choice of this.choices){
                if(value != choice.value){
                    choice.elt.setAttribute("style", "display:none");
                } else {
                    choice.elt.setAttribute("style", choice.style);
                }
            }
        }
    }
    ||

template "widget[@type='Switch']", mode="widget_defs" {
    param "hmi_element";
    |     choices: [
    const "regex",!"'^(\"[^\"].*\"|\-?[0-9]+|false|true)(#.*)?$'"!;
    foreach "$result_svg_ns//*[@id = $hmi_element/@id]//*[regexp:test(@inkscape:label,$regex)]" {
        const "literal", "regexp:match(@inkscape:label,$regex)[2]";
    |         {
    |             elt:id("«@id»"),
    |             style:"«@style»",
    |             value:«$literal»
    |         }`if "position()!=last()" > ,`
    }
    |     ],
}