--- a/svghmi/gen_index_xhtml.xslt Thu Aug 13 11:30:18 2020 +0200
+++ b/svghmi/gen_index_xhtml.xslt Thu Aug 13 11:37:39 2020 +0200
@@ -1141,29 +1141,101 @@
</xsl:text>
<xsl:text> apply_cache() {
</xsl:text>
+ <xsl:text> if(!this.unsubscribable) for(let index in this.indexes){
+</xsl:text>
+ <xsl:text> /* dispatch current cache in newly opened page widgets */
+</xsl:text>
+ <xsl:text> let realindex = this.get_variable_index(index);
+</xsl:text>
+ <xsl:text> let cached_val = cache[realindex];
+</xsl:text>
+ <xsl:text> if(cached_val != undefined)
+</xsl:text>
+ <xsl:text> this._dispatch(cached_val, cached_val, index);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> get_variable_index(varnum) {
+</xsl:text>
+ <xsl:text> let index = this.indexes[varnum];
+</xsl:text>
+ <xsl:text> if(typeof(index) == "string"){
+</xsl:text>
+ <xsl:text> index = page_local_index(index, this.container_id);
+</xsl:text>
+ <xsl:text> } else {
+</xsl:text>
+ <xsl:text> if(this.relativeness[varnum]){
+</xsl:text>
+ <xsl:text> index += this.offset;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> return index;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> change_hmi_value(index,opstr) {
+</xsl:text>
+ <xsl:text> return change_hmi_value(this.get_variable_index(index), opstr);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> apply_hmi_value(index, new_val) {
+</xsl:text>
+ <xsl:text> return apply_hmi_value(this.get_variable_index(0), new_val);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> new_hmi_value(index, value, oldval) {
+</xsl:text>
+ <xsl:text> // TODO avoid searching, store index at sub()
+</xsl:text>
+ <xsl:text> for(let i = 0; i < this.indexes.length; i++) {
+</xsl:text>
+ <xsl:text> let refindex = this.get_variable_index(i);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if(index == refindex) {
+</xsl:text>
+ <xsl:text> this._dispatch(value, oldval, i);
+</xsl:text>
+ <xsl:text> break;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> _dispatch(value, oldval, varnum) {
+</xsl:text>
<xsl:text> let dispatch = this.dispatch;
</xsl:text>
- <xsl:text> if(dispatch == undefined) return;
-</xsl:text>
- <xsl:text> if(!this.unsubscribable) for(let index in this.indexes){
-</xsl:text>
- <xsl:text> /* dispatch current cache in newly opened page widgets */
-</xsl:text>
- <xsl:text> let realindex = this.get_variable_index(index);
-</xsl:text>
- <xsl:text> let cached_val = cache[realindex];
-</xsl:text>
- <xsl:text> if(cached_val != undefined)
-</xsl:text>
- <xsl:text> try {
-</xsl:text>
- <xsl:text> dispatch.call(this, cached_val, cached_val, index);
-</xsl:text>
- <xsl:text> } catch(err) {
-</xsl:text>
- <xsl:text> console.log(err);
-</xsl:text>
- <xsl:text> }
+ <xsl:text> if(dispatch != undefined){
+</xsl:text>
+ <xsl:text> try {
+</xsl:text>
+ <xsl:text> dispatch.call(this, value, oldval, varnum);
+</xsl:text>
+ <xsl:text> } catch(err) {
+</xsl:text>
+ <xsl:text> console.log(err);
+</xsl:text>
+ <xsl:text> }
</xsl:text>
<xsl:text> }
</xsl:text>
@@ -1171,80 +1243,6 @@
</xsl:text>
<xsl:text>
</xsl:text>
- <xsl:text> get_variable_index(varnum) {
-</xsl:text>
- <xsl:text> let index = this.indexes[varnum];
-</xsl:text>
- <xsl:text> if(typeof(index) == "string"){
-</xsl:text>
- <xsl:text> index = page_local_index(index, this.container_id);
-</xsl:text>
- <xsl:text> } else {
-</xsl:text>
- <xsl:text> if(this.relativeness[varnum]){
-</xsl:text>
- <xsl:text> index += this.offset;
-</xsl:text>
- <xsl:text> }
-</xsl:text>
- <xsl:text> }
-</xsl:text>
- <xsl:text> return index;
-</xsl:text>
- <xsl:text> }
-</xsl:text>
- <xsl:text> change_hmi_value(index,opstr) {
-</xsl:text>
- <xsl:text> return change_hmi_value(this.get_variable_index(index), opstr);
-</xsl:text>
- <xsl:text> }
-</xsl:text>
- <xsl:text>
-</xsl:text>
- <xsl:text> apply_hmi_value(index, new_val) {
-</xsl:text>
- <xsl:text> return apply_hmi_value(this.get_variable_index(0), new_val);
-</xsl:text>
- <xsl:text> }
-</xsl:text>
- <xsl:text>
-</xsl:text>
- <xsl:text> new_hmi_value(index, value, oldval) {
-</xsl:text>
- <xsl:text> // TODO avoid searching, store index at sub()
-</xsl:text>
- <xsl:text> let dispatch = this.dispatch;
-</xsl:text>
- <xsl:text> if(dispatch == undefined) return;
-</xsl:text>
- <xsl:text> for(let i = 0; i < this.indexes.length; i++) {
-</xsl:text>
- <xsl:text> let refindex = this.get_variable_index(i);
-</xsl:text>
- <xsl:text>
-</xsl:text>
- <xsl:text> if(index == refindex) {
-</xsl:text>
- <xsl:text> try {
-</xsl:text>
- <xsl:text> dispatch.call(this, value, oldval, i);
-</xsl:text>
- <xsl:text> } catch(err) {
-</xsl:text>
- <xsl:text> console.log(err);
-</xsl:text>
- <xsl:text> }
-</xsl:text>
- <xsl:text> break;
-</xsl:text>
- <xsl:text> }
-</xsl:text>
- <xsl:text> }
-</xsl:text>
- <xsl:text> }
-</xsl:text>
- <xsl:text>
-</xsl:text>
<xsl:text> _animate(){
</xsl:text>
<xsl:text> this.animate();