--- a/svghmi/gen_index_xhtml.xslt Mon Aug 03 18:22:19 2020 +0200
+++ b/svghmi/gen_index_xhtml.xslt Mon Aug 03 18:25:23 2020 +0200
@@ -1001,6 +1001,14 @@
+ <xsl:text> get_idx(index) { + <xsl:text> let orig = this.indexes[index]; + <xsl:text> return this.offset ? orig + this.offset : orig; @@ -1188,7 +1196,7 @@
- <xsl:text> change_hmi_value(this.indexes[0], "=1");
+ <xsl:text> apply_hmi_value(this.get_idx(0), 1); @@ -1202,7 +1210,7 @@
- <xsl:text> change_hmi_value(this.indexes[0], "=0");
+ <xsl:text> apply_hmi_value(this.get_idx(0), 0); @@ -1437,11 +1445,7 @@
- <xsl:text> let orig = this.indexes[0];
- <xsl:text> let idx = this.offset ? orig - this.offset : orig;
- <xsl:text> apply_hmi_value(idx, selection);
+ <xsl:text> apply_hmi_value(this.get_idx(0), selection); @@ -1993,9 +1997,7 @@
- <xsl:text> foreach_widgets_do(new_offset, todo){
- <xsl:text> this.offset = new_offset;
+ <xsl:text> foreach_widgets_do(todo){ <xsl:text> for(let i = 0; i < this.items.length; i++) {
@@ -2009,7 +2011,7 @@
<xsl:text> for(let widget of item) {
- <xsl:text> todo(widget).call(widget, new_offset + item_index_offset);
+ <xsl:text> todo(widget).call(widget, this.offset + item_index_offset); @@ -2021,7 +2023,9 @@
<xsl:text> sub(new_offset=0){
- <xsl:text> this.foreach_widgets_do(new_offset, w=>w.sub);
+ <xsl:text> this.offset = new_offset; + <xsl:text> this.foreach_widgets_do(w=>w.sub); @@ -2029,7 +2033,7 @@
<xsl:text> apply_cache() {
- <xsl:text> this.foreach_widgets_do(this.offset, w=>w.apply_cache);
+ <xsl:text> this.foreach_widgets_do(w=>w.apply_cache); @@ -2134,11 +2138,7 @@
<xsl:text> on_op_click: function(opstr) {
- <xsl:text> let orig = this.indexes[0];
- <xsl:text> let idx = this.offset ? orig - this.offset : orig;
- <xsl:text> let new_val = change_hmi_value(idx, opstr);
+ <xsl:text> let new_val = change_hmi_value(this.get_idx(0), opstr); @@ -2154,11 +2154,7 @@
<xsl:text> edit_callback: function(new_val) {
- <xsl:text> let orig = this.indexes[0];
- <xsl:text> let idx = this.offset ? orig - this.offset : orig;
- <xsl:text> apply_hmi_value(idx, new_val);
+ <xsl:text> apply_hmi_value(this.get_idx(0), new_val); @@ -3413,7 +3409,7 @@
<xsl:text> dispatch: function(value) {
- <xsl:text> change_hmi_value(heartbeat_index, "+1");
+ <xsl:text> apply_hmi_value(heartbeat_index, value+1); --- a/svghmi/widget_foreach.ysl2 Mon Aug 03 18:22:19 2020 +0200
+++ b/svghmi/widget_foreach.ysl2 Mon Aug 03 18:25:23 2020 +0200
@@ -58,25 +58,25 @@
- foreach_widgets_do(new_offset, todo){
- this.offset = new_offset;
+ foreach_widgets_do(todo){ for(let i = 0; i < this.items.length; i++) {
let item = this.items[i];
let orig_item_index = this.index_pool[i];
let item_index = this.index_pool[i+this.item_offset];
let item_index_offset = item_index - orig_item_index;
for(let widget of item) {
- todo(widget).call(widget, new_offset + item_index_offset);
+ todo(widget).call(widget, this.offset + item_index_offset); - this.foreach_widgets_do(new_offset, w=>w.sub);
+ this.offset = new_offset; + this.foreach_widgets_do(w=>w.sub); - this.foreach_widgets_do(this.offset, w=>w.apply_cache);
+ this.foreach_widgets_do(w=>w.apply_cache);