svghmi/gen_index_xhtml.xslt
branchsvghmi
changeset 2892 27dd409fba1d
parent 2890 ae8063127e95
child 2893 d57a12b8f5db
equal deleted inserted replaced
2891:8927ae8326b2 2892:27dd409fba1d
   678       <xsl:otherwise>
   678       <xsl:otherwise>
   679         <func:result select="$txt"/>
   679         <func:result select="$txt"/>
   680       </xsl:otherwise>
   680       </xsl:otherwise>
   681     </xsl:choose>
   681     </xsl:choose>
   682   </func:function>
   682   </func:function>
   683   <xsl:template mode="widget_defs" match="widget[@type='ForEach']">
       
   684     <xsl:param name="hmi_element"/>
       
   685     <xsl:text>    frequency: 2,
       
   686 </xsl:text>
       
   687     <xsl:text>    dispatch: function(value) {
       
   688 </xsl:text>
       
   689     <xsl:text>                    // do something
       
   690 </xsl:text>
       
   691     <xsl:text>    },
       
   692 </xsl:text>
       
   693     <xsl:text>    init: function() {
       
   694 </xsl:text>
       
   695     <xsl:for-each select="$hmi_element/*[regexp:test(@inkscape:label,'^[=+\-].+')]">
       
   696       <xsl:text>        id("</xsl:text>
       
   697       <xsl:value-of select="@id"/>
       
   698       <xsl:text>").addEventListener(
       
   699 </xsl:text>
       
   700       <xsl:text>            "click", 
       
   701 </xsl:text>
       
   702       <xsl:text>            evt =&gt; {let new_val = "</xsl:text>
       
   703       <xsl:value-of select="func:escape_quotes(@inkscape:label)"/>
       
   704       <xsl:text>");
       
   705 </xsl:text>
       
   706       <xsl:text>                    // do something with new_val
       
   707 </xsl:text>
       
   708       <xsl:text>                   });
       
   709 </xsl:text>
       
   710     </xsl:for-each>
       
   711     <xsl:text>    },
       
   712 </xsl:text>
       
   713   </xsl:template>
       
   714   <xsl:template mode="widget_subscribe" match="widget[@type='ForEach']">
       
   715     <xsl:text>    sub: function(off){
       
   716 </xsl:text>
       
   717     <xsl:text>        subscribe.call(this,off)
       
   718 </xsl:text>
       
   719     <xsl:text>    },
       
   720 </xsl:text>
       
   721     <xsl:text>    unsub: function(){
       
   722 </xsl:text>
       
   723     <xsl:text>        unsubscribe.call(this)
       
   724 </xsl:text>
       
   725     <xsl:text>    },
       
   726 </xsl:text>
       
   727   </xsl:template>
       
   728   <xsl:template mode="widget_defs" match="widget[@type='Display']">
   683   <xsl:template mode="widget_defs" match="widget[@type='Display']">
   729     <xsl:param name="hmi_element"/>
   684     <xsl:param name="hmi_element"/>
   730     <xsl:text>    frequency: 5,
   685     <xsl:text>    frequency: 5,
   731 </xsl:text>
   686 </xsl:text>
   732     <xsl:text>    dispatch: function(value) {
   687     <xsl:text>    dispatch: function(value) {
   740         <xsl:message terminate="no">
   695         <xsl:message terminate="no">
   741           <xsl:text>Display widget as a group not implemented</xsl:text>
   696           <xsl:text>Display widget as a group not implemented</xsl:text>
   742         </xsl:message>
   697         </xsl:message>
   743       </xsl:otherwise>
   698       </xsl:otherwise>
   744     </xsl:choose>
   699     </xsl:choose>
       
   700     <xsl:text>    },
       
   701 </xsl:text>
       
   702   </xsl:template>
       
   703   <xsl:template mode="widget_defs" match="widget[@type='ForEach']">
       
   704     <xsl:param name="hmi_element"/>
       
   705     <xsl:variable name="widgets" select="func:refered_elements($forEach_widgets)[not(@id = $forEach_widgets_ids)]"/>
       
   706     <xsl:text>    frequency: 2,
       
   707 </xsl:text>
       
   708     <xsl:text>    dispatch: function(value) {
       
   709 </xsl:text>
       
   710     <xsl:text>                    // do something
       
   711 </xsl:text>
       
   712     <xsl:text>    },
       
   713 </xsl:text>
       
   714     <xsl:text>    init: function() {
       
   715 </xsl:text>
       
   716     <xsl:for-each select="$hmi_element/*[regexp:test(@inkscape:label,'^[=+\-].+')]">
       
   717       <xsl:text>        id("</xsl:text>
       
   718       <xsl:value-of select="@id"/>
       
   719       <xsl:text>").addEventListener(
       
   720 </xsl:text>
       
   721       <xsl:text>            "click", 
       
   722 </xsl:text>
       
   723       <xsl:text>            evt =&gt; {let new_val = "</xsl:text>
       
   724       <xsl:value-of select="func:escape_quotes(@inkscape:label)"/>
       
   725       <xsl:text>");
       
   726 </xsl:text>
       
   727       <xsl:text>                    // do something with new_val
       
   728 </xsl:text>
       
   729       <xsl:text>                   });
       
   730 </xsl:text>
       
   731     </xsl:for-each>
       
   732     <xsl:text>    },
       
   733 </xsl:text>
       
   734     <xsl:text>    widgets: [
       
   735 </xsl:text>
       
   736     <xsl:variable name="labels_regex" select="concat('^',arg[1]/@value,':[0-9]+')"/>
       
   737     <xsl:for-each select="$hmi_element/*[regexp:test(@inkscape:label, $labels_regex)]">
       
   738       <xsl:text>      [ /* </xsl:text>
       
   739       <xsl:value-of select="@inkscape:label"/>
       
   740       <xsl:text> */
       
   741 </xsl:text>
       
   742       <xsl:variable name="elt" select="."/>
       
   743       <xsl:for-each select="func:refered_elements(.)[@id = $hmi_elements/@id][not(@id = $elt/@id)]">
       
   744         <xsl:text>        hmi_widgets["</xsl:text>
       
   745         <xsl:value-of select="@id"/>
       
   746         <xsl:text>"]</xsl:text>
       
   747         <xsl:if test="position()!=last()">
       
   748           <xsl:text>,</xsl:text>
       
   749         </xsl:if>
       
   750         <xsl:text>
       
   751 </xsl:text>
       
   752       </xsl:for-each>
       
   753       <xsl:text>      ]</xsl:text>
       
   754       <xsl:if test="position()!=last()">
       
   755         <xsl:text>,</xsl:text>
       
   756       </xsl:if>
       
   757       <xsl:text>
       
   758 </xsl:text>
       
   759     </xsl:for-each>
       
   760     <xsl:text>    ],
       
   761 </xsl:text>
       
   762   </xsl:template>
       
   763   <xsl:template mode="widget_subscribe" match="widget[@type='ForEach']">
       
   764     <xsl:text>    sub: function(off){
       
   765 </xsl:text>
       
   766     <xsl:text>        subscribe.call(this,off)
       
   767 </xsl:text>
       
   768     <xsl:text>    },
       
   769 </xsl:text>
       
   770     <xsl:text>    unsub: function(){
       
   771 </xsl:text>
       
   772     <xsl:text>        unsubscribe.call(this)
       
   773 </xsl:text>
   745     <xsl:text>    },
   774     <xsl:text>    },
   746 </xsl:text>
   775 </xsl:text>
   747   </xsl:template>
   776   </xsl:template>
   748   <xsl:template mode="widget_defs" match="widget[@type='Input']">
   777   <xsl:template mode="widget_defs" match="widget[@type='Input']">
   749     <xsl:param name="hmi_element"/>
   778     <xsl:param name="hmi_element"/>