svghmi/widget_listswitch.ysl2
author Edouard Tisserant <edouard.tisserant@gmail.com>
Tue, 15 Nov 2022 20:43:39 +0100
branchwxPython4
changeset 3677 6d9040e07c32
parent 3403 4a048b5b9e3b
permissions -rw-r--r--
OPC-UA: only support the encryption policy selected in config.

By default open62541 client accepts all supported policies, but in makes problem
when negociating with some servers while most clients seems to only support
one policy at a time.
// widget_switch.ysl2

widget_desc("ListSwitch") {
    longdesc
    ||
    ListSwitch widget displays one item of an HMI:List depending on value of
    given variable. Main element of the widget must be a clone of the list or
    of an item of that list.  

    Given variable's current value is compared to list items
    label. For exemple if given variable type
    is HMI_INT and value is 1, then item with label '1' will be displayed.
    If matching variable of type HMI_STRING, then no quotes are needed. 
    For exemple, 'hello' match HMI_STRING 'hello'.
    ||

    shortdesc > Displays item of an HMI:List whose label matches value.

    path name="value" accepts="HMI_INT,HMI_STRING" > value to compare to labels
    
}

widget_class("ListSwitch"){
    ||
        frequency = 5;
    ||
}

widget_defs("ListSwitch") {
    // cloned element must be part of a HMI:List or a HMI:List
    const "targetid", "substring-after($hmi_element/@xlink:href,'#')";
    const "from_list", "$hmi_lists[(@id | */@id) = $targetid]";
    ||
        dispatch: function(value) {
            this.element.href.baseVal = "#"+hmi_widgets["«$from_list/@id»"].items[value];
        },
    ||
}