svghmi/gen_index_xhtml.ysl2
branchsvghmi
changeset 2801 390acff12755
parent 2800 68cee1366b9c
child 2806 7d0e81cdedb0
--- a/svghmi/gen_index_xhtml.ysl2	Sat Oct 19 01:23:30 2019 +0200
+++ b/svghmi/gen_index_xhtml.ysl2	Tue Oct 22 17:06:31 2019 +0200
@@ -317,16 +317,47 @@
         |   this.element.textContent = String(value);
             }
             otherwise {
-                error "Display widget as a group not implemented";
+                error > Display widget as a group not implemented
             }
         }
         | },
 
     }
     template "widget[@type='Meter']", mode="widget_defs" {
-        |     frequency: 10,
+        | frequency: 10,
     }
     template "widget[@type='Input']", mode="widget_defs" {
+        param "hmi_element";
+        | frequency: 5,
+        const "value_elt_id","$hmi_element//*[self::svg:text][@inkscape:label='value'][1]/@id";
+        if "not($value_elt_id)" error > Input widget must have a text element
+        | value_elt: document.getElementById("«$value_elt_id»"),
+        | dispatch: function(value) {
+        |     this.value_elt.textContent = String(value);
+        | },
+        const "edit_elt_id","$hmi_element/*[@inkscape:label='edit'][1]/@id";
+        | init: function() {
+        if "$edit_elt_id" {
+        |     document.getElementById("«$edit_elt_id»").addEventListener(
+        |         "click", 
+        |         evt => alert('XXX TODO : Edit value'));
+        }
+        foreach "$hmi_element/*[regexp:test(@inkscape:label,'^[=+\-][0-9]+')]" {
+        |     document.getElementById("«@id»").addEventListener(
+        |         "click", 
+        |         evt => change_hmi_value(this.indexes[0], "«@inkscape:label»"));
+        }
+        | },
+    }
+    template "widget[@type='Button']", mode="widget_defs" {
+    }
+    template "widget[@type='Toggle']", mode="widget_defs" {
+        |     frequency: 5,
+    }
+    template "widget[@type='Change']", mode="widget_defs" {
+        // HMI:Change:-10@/PUMP/VALUE 
+        // HMI:Change:+1@/PUMP/VALUE 
+        // HMI:Change:=42@/PUMP/VALUE 
         |     frequency: 5,
     }
     //    |     frequency: 10`apply ".", mode="refresh_frequency"`,