// 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]; }, || }