svghmi/widget_input.ysl2
branchsvghmi
changeset 2883 8e3d130399b0
parent 2882 ac08a5d15c15
child 2910 1a1caf71b1cc
equal deleted inserted replaced
2882:ac08a5d15c15 2883:8e3d130399b0
       
     1 // widget_input.ysl2
       
     2 
       
     3 template "widget[@type='Input']", mode="widget_defs" {
       
     4     param "hmi_element";
       
     5     const "value_elt" {
       
     6         optional_labels("value");
       
     7     }
       
     8     const "have_value","string-length($value_elt)>0";
       
     9     value "$value_elt";
       
    10     if "$have_value"
       
    11     |     frequency: 5,
       
    12 
       
    13     |     dispatch: function(value) {
       
    14 
       
    15     if "$have_value"
       
    16     |         this.value_elt.textContent = String(value);
       
    17 
       
    18     |     },
       
    19     const "edit_elt_id","$hmi_element/*[@inkscape:label='edit'][1]/@id";
       
    20     |     init: function() {
       
    21     if "$edit_elt_id" {
       
    22     |         id("«$edit_elt_id»").addEventListener(
       
    23     |             "click", 
       
    24     |             evt => alert('XXX TODO : Edit value'));
       
    25     }
       
    26     foreach "$hmi_element/*[regexp:test(@inkscape:label,'^[=+\-].+')]" {
       
    27     |         id("«@id»").addEventListener(
       
    28     |             "click", 
       
    29     |             evt => {let new_val = change_hmi_value(this.indexes[0], "«func:escape_quotes(@inkscape:label)»");
       
    30         if "$have_value"{
       
    31     |                     this.value_elt.textContent = String(new_val);
       
    32         }
       
    33     |                    });
       
    34                           /* TODO gray out value until refreshed */
       
    35     }
       
    36     |     },
       
    37 }