SVGHMI: update generated xslt
authorEdouard Tisserant
Tue, 18 Jan 2022 10:57:43 +0100
changeset 3410 eac5832a1489
parent 3409 440183be80a2
child 3411 3e162ea3c726
SVGHMI: update generated xslt
svghmi/analyse_widget.xslt
svghmi/gen_dnd_widget_svg.xslt
svghmi/gen_index_xhtml.xslt
--- a/svghmi/analyse_widget.xslt	Tue Jan 18 10:57:11 2022 +0100
+++ b/svghmi/analyse_widget.xslt	Tue Jan 18 10:57:43 2022 +0100
@@ -18,14 +18,26 @@
         </xsl:otherwise>
       </xsl:choose>
     </xsl:variable>
-    <xsl:variable name="_type" select="substring-before($args,':')"/>
+    <xsl:variable name="_typefreq" select="substring-before($args,':')"/>
+    <xsl:variable name="typefreq">
+      <xsl:choose>
+        <xsl:when test="$_typefreq">
+          <xsl:value-of select="$_typefreq"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$args"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <xsl:variable name="freq" select="substring-after($typefreq,':')"/>
+    <xsl:variable name="_type" select="substring-before($typefreq,'|')"/>
     <xsl:variable name="type">
       <xsl:choose>
         <xsl:when test="$_type">
           <xsl:value-of select="$_type"/>
         </xsl:when>
         <xsl:otherwise>
-          <xsl:value-of select="$args"/>
+          <xsl:value-of select="$typefreq"/>
         </xsl:otherwise>
       </xsl:choose>
     </xsl:variable>
@@ -37,6 +49,11 @@
         <xsl:attribute name="type">
           <xsl:value-of select="$type"/>
         </xsl:attribute>
+        <xsl:if test="freq">
+          <xsl:attribute name="frequency">
+            <xsl:value-of select="$freq"/>
+          </xsl:attribute>
+        </xsl:if>
         <xsl:for-each select="str:split(substring-after($args, ':'), ':')">
           <arg>
             <xsl:attribute name="value">
--- a/svghmi/gen_dnd_widget_svg.xslt	Tue Jan 18 10:57:11 2022 +0100
+++ b/svghmi/gen_dnd_widget_svg.xslt	Tue Jan 18 10:57:43 2022 +0100
@@ -20,14 +20,26 @@
         </xsl:otherwise>
       </xsl:choose>
     </xsl:variable>
-    <xsl:variable name="_type" select="substring-before($args,':')"/>
+    <xsl:variable name="_typefreq" select="substring-before($args,':')"/>
+    <xsl:variable name="typefreq">
+      <xsl:choose>
+        <xsl:when test="$_typefreq">
+          <xsl:value-of select="$_typefreq"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$args"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <xsl:variable name="freq" select="substring-after($typefreq,':')"/>
+    <xsl:variable name="_type" select="substring-before($typefreq,'|')"/>
     <xsl:variable name="type">
       <xsl:choose>
         <xsl:when test="$_type">
           <xsl:value-of select="$_type"/>
         </xsl:when>
         <xsl:otherwise>
-          <xsl:value-of select="$args"/>
+          <xsl:value-of select="$typefreq"/>
         </xsl:otherwise>
       </xsl:choose>
     </xsl:variable>
@@ -39,6 +51,11 @@
         <xsl:attribute name="type">
           <xsl:value-of select="$type"/>
         </xsl:attribute>
+        <xsl:if test="freq">
+          <xsl:attribute name="frequency">
+            <xsl:value-of select="$freq"/>
+          </xsl:attribute>
+        </xsl:if>
         <xsl:for-each select="str:split(substring-after($args, ':'), ':')">
           <arg>
             <xsl:attribute name="value">
--- a/svghmi/gen_index_xhtml.xslt	Tue Jan 18 10:57:11 2022 +0100
+++ b/svghmi/gen_index_xhtml.xslt	Tue Jan 18 10:57:43 2022 +0100
@@ -175,14 +175,26 @@
         </xsl:otherwise>
       </xsl:choose>
     </xsl:variable>
-    <xsl:variable name="_type" select="substring-before($args,':')"/>
+    <xsl:variable name="_typefreq" select="substring-before($args,':')"/>
+    <xsl:variable name="typefreq">
+      <xsl:choose>
+        <xsl:when test="$_typefreq">
+          <xsl:value-of select="$_typefreq"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$args"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <xsl:variable name="freq" select="substring-after($typefreq,':')"/>
+    <xsl:variable name="_type" select="substring-before($typefreq,'|')"/>
     <xsl:variable name="type">
       <xsl:choose>
         <xsl:when test="$_type">
           <xsl:value-of select="$_type"/>
         </xsl:when>
         <xsl:otherwise>
-          <xsl:value-of select="$args"/>
+          <xsl:value-of select="$typefreq"/>
         </xsl:otherwise>
       </xsl:choose>
     </xsl:variable>
@@ -194,6 +206,11 @@
         <xsl:attribute name="type">
           <xsl:value-of select="$type"/>
         </xsl:attribute>
+        <xsl:if test="freq">
+          <xsl:attribute name="frequency">
+            <xsl:value-of select="$freq"/>
+          </xsl:attribute>
+        </xsl:if>
         <xsl:for-each select="str:split(substring-after($args, ':'), ':')">
           <arg>
             <xsl:attribute name="value">
@@ -998,7 +1015,7 @@
   <xsl:template xmlns="http://www.w3.org/2000/svg" mode="unlink_clone" match="svg:*">
     <xsl:param name="seed"/>
     <xsl:choose>
-      <xsl:when test="@id = $hmi_elements/@id">
+      <xsl:when test="@id = $hmi_widgets/@id">
         <use>
           <xsl:attribute name="xlink:href">
             <xsl:value-of select="concat('#',@id)"/>
@@ -1228,13 +1245,25 @@
         </xsl:if>
       </xsl:for-each>
     </xsl:variable>
+    <xsl:variable name="freq">
+      <xsl:choose>
+        <xsl:when test="$widget/freq">
+          <xsl:value-of select="$widget/freq"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text>undefined</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
     <xsl:text>  "</xsl:text>
     <xsl:value-of select="@id"/>
     <xsl:text>": new </xsl:text>
     <xsl:value-of select="$widget/@type"/>
     <xsl:text>Widget ("</xsl:text>
     <xsl:value-of select="@id"/>
-    <xsl:text>",[</xsl:text>
+    <xsl:text>",</xsl:text>
+    <xsl:value-of select="$freq"/>
+    <xsl:text>,[</xsl:text>
     <xsl:value-of select="$args"/>
     <xsl:text>],[</xsl:text>
     <xsl:value-of select="$indexes"/>
@@ -1424,12 +1453,14 @@
 </xsl:text>
     <xsl:text>
 </xsl:text>
-    <xsl:text>    constructor(elt_id,args,indexes,minmaxes,members){
+    <xsl:text>    constructor(elt_id, freq, args, indexes, minmaxes, members){
 </xsl:text>
     <xsl:text>        this.element_id = elt_id;
 </xsl:text>
     <xsl:text>        this.element = id(elt_id);
 </xsl:text>
+    <xsl:text>        if(freq !== undefined) this.frequency = freq;
+</xsl:text>
     <xsl:text>        this.args = args;
 </xsl:text>
     <xsl:text>        this.indexes = indexes;