# HG changeset patch # User Edouard Tisserant <edouard.tisserant@gmail.com> # Date 1660315935 -7200 # Node ID 7dcd0de97e6f7775d0d069e3acc99646ceee4142 # Parent 5a0f7fcf9a8fd355618fad8801fbe7c045d39be1 SVGHMI: update generated XSLT diff -r 5a0f7fcf9a8f -r 7dcd0de97e6f svghmi/analyse_widget.xslt --- a/svghmi/analyse_widget.xslt Fri Aug 12 13:35:59 2022 +0200 +++ b/svghmi/analyse_widget.xslt Fri Aug 12 16:52:15 2022 +0200 @@ -3,8 +3,37 @@ <xsl:output method="xml"/> <xsl:variable name="indexed_hmitree" select="/.."/> <xsl:variable name="pathregex" select="'^([^\[,]+)(\[[^\]]+\])?([-.\d,]*)$'"/> + <xsl:variable name="newline"> + <xsl:text> +</xsl:text> + </xsl:variable> + <xsl:variable name="twonewlines" select="concat($newline,$newline)"/> <xsl:template mode="parselabel" match="*"> - <xsl:variable name="label" select="@inkscape:label"/> + <xsl:variable name="part" select="@inkscape:label"/> + <xsl:variable name="desc" select="svg:desc"/> + <xsl:variable name="len" select="string-length($part)"/> + <xsl:variable name="has_continuation" select="substring($part,$len,1)='\'"/> + <xsl:variable name="label"> + <xsl:choose> + <xsl:when test="$has_continuation"> + <xsl:variable name="_continuation" select="substring-before($desc, $twonewlines)"/> + <xsl:variable name="continuation"> + <xsl:choose> + <xsl:when test="$_continuation"> + <xsl:value-of select="$_continuation"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$desc"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:value-of select="concat(substring($part,1,$len - 1),translate($continuation,$newline,''))"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$part"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> <xsl:variable name="id" select="@id"/> <xsl:variable name="description" select="substring-after($label,'HMI:')"/> <xsl:variable name="_args" select="substring-before($description,'@')"/> @@ -148,11 +177,23 @@ </path> </xsl:if> </xsl:for-each> - <xsl:if test="svg:desc"> - <desc> - <xsl:value-of select="svg:desc/text()"/> - </desc> - </xsl:if> + <xsl:choose> + <xsl:when test="$has_continuation"> + <xsl:variable name="_continuation" select="substring-after($desc, $twonewlines)"/> + <xsl:if test="$_continuation"> + <desc> + <xsl:value-of select="$_continuation"/> + </desc> + </xsl:if> + </xsl:when> + <xsl:otherwise> + <xsl:if test="$desc"> + <desc> + <xsl:value-of select="$desc/text()"/> + </desc> + </xsl:if> + </xsl:otherwise> + </xsl:choose> </widget> </xsl:if> </xsl:template> diff -r 5a0f7fcf9a8f -r 7dcd0de97e6f svghmi/gen_dnd_widget_svg.xslt --- a/svghmi/gen_dnd_widget_svg.xslt Fri Aug 12 13:35:59 2022 +0200 +++ b/svghmi/gen_dnd_widget_svg.xslt Fri Aug 12 16:52:15 2022 +0200 @@ -5,8 +5,37 @@ <xsl:variable name="widgetparams" select="ns:GetWidgetParams()"/> <xsl:variable name="indexed_hmitree" select="/.."/> <xsl:variable name="pathregex" select="'^([^\[,]+)(\[[^\]]+\])?([-.\d,]*)$'"/> + <xsl:variable name="newline"> + <xsl:text> +</xsl:text> + </xsl:variable> + <xsl:variable name="twonewlines" select="concat($newline,$newline)"/> <xsl:template mode="parselabel" match="*"> - <xsl:variable name="label" select="@inkscape:label"/> + <xsl:variable name="part" select="@inkscape:label"/> + <xsl:variable name="desc" select="svg:desc"/> + <xsl:variable name="len" select="string-length($part)"/> + <xsl:variable name="has_continuation" select="substring($part,$len,1)='\'"/> + <xsl:variable name="label"> + <xsl:choose> + <xsl:when test="$has_continuation"> + <xsl:variable name="_continuation" select="substring-before($desc, $twonewlines)"/> + <xsl:variable name="continuation"> + <xsl:choose> + <xsl:when test="$_continuation"> + <xsl:value-of select="$_continuation"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$desc"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:value-of select="concat(substring($part,1,$len - 1),translate($continuation,$newline,''))"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$part"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> <xsl:variable name="id" select="@id"/> <xsl:variable name="description" select="substring-after($label,'HMI:')"/> <xsl:variable name="_args" select="substring-before($description,'@')"/> @@ -150,11 +179,23 @@ </path> </xsl:if> </xsl:for-each> - <xsl:if test="svg:desc"> - <desc> - <xsl:value-of select="svg:desc/text()"/> - </desc> - </xsl:if> + <xsl:choose> + <xsl:when test="$has_continuation"> + <xsl:variable name="_continuation" select="substring-after($desc, $twonewlines)"/> + <xsl:if test="$_continuation"> + <desc> + <xsl:value-of select="$_continuation"/> + </desc> + </xsl:if> + </xsl:when> + <xsl:otherwise> + <xsl:if test="$desc"> + <desc> + <xsl:value-of select="$desc/text()"/> + </desc> + </xsl:if> + </xsl:otherwise> + </xsl:choose> </widget> </xsl:if> </xsl:template> diff -r 5a0f7fcf9a8f -r 7dcd0de97e6f svghmi/gen_index_xhtml.xslt --- a/svghmi/gen_index_xhtml.xslt Fri Aug 12 13:35:59 2022 +0200 +++ b/svghmi/gen_index_xhtml.xslt Fri Aug 12 16:52:15 2022 +0200 @@ -160,8 +160,37 @@ </xsl:apply-templates> </xsl:template> <xsl:variable name="pathregex" select="'^([^\[,]+)(\[[^\]]+\])?([-.\d,]*)$'"/> + <xsl:variable name="newline"> + <xsl:text> +</xsl:text> + </xsl:variable> + <xsl:variable name="twonewlines" select="concat($newline,$newline)"/> <xsl:template mode="parselabel" match="*"> - <xsl:variable name="label" select="@inkscape:label"/> + <xsl:variable name="part" select="@inkscape:label"/> + <xsl:variable name="desc" select="svg:desc"/> + <xsl:variable name="len" select="string-length($part)"/> + <xsl:variable name="has_continuation" select="substring($part,$len,1)='\'"/> + <xsl:variable name="label"> + <xsl:choose> + <xsl:when test="$has_continuation"> + <xsl:variable name="_continuation" select="substring-before($desc, $twonewlines)"/> + <xsl:variable name="continuation"> + <xsl:choose> + <xsl:when test="$_continuation"> + <xsl:value-of select="$_continuation"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$desc"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:value-of select="concat(substring($part,1,$len - 1),translate($continuation,$newline,''))"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$part"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> <xsl:variable name="id" select="@id"/> <xsl:variable name="description" select="substring-after($label,'HMI:')"/> <xsl:variable name="_args" select="substring-before($description,'@')"/> @@ -305,11 +334,23 @@ </path> </xsl:if> </xsl:for-each> - <xsl:if test="svg:desc"> - <desc> - <xsl:value-of select="svg:desc/text()"/> - </desc> - </xsl:if> + <xsl:choose> + <xsl:when test="$has_continuation"> + <xsl:variable name="_continuation" select="substring-after($desc, $twonewlines)"/> + <xsl:if test="$_continuation"> + <desc> + <xsl:value-of select="$_continuation"/> + </desc> + </xsl:if> + </xsl:when> + <xsl:otherwise> + <xsl:if test="$desc"> + <desc> + <xsl:value-of select="$desc/text()"/> + </desc> + </xsl:if> + </xsl:otherwise> + </xsl:choose> </widget> </xsl:if> </xsl:template> @@ -371,6 +412,11 @@ </xsl:for-each> <xsl:text> </xsl:text> + <xsl:if test="text()"> + <xsl:value-of select="text()"/> + <xsl:text> +</xsl:text> + </xsl:if> <xsl:apply-templates mode="testtree" select="*"> <xsl:with-param name="indent"> <xsl:value-of select="concat($indent,'>')"/> @@ -5600,6 +5646,12 @@ </xsl:text> <xsl:text> this.disabled = !Number(value); </xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> // TODO : use RequestAnimate and animate() +</xsl:text> + <xsl:text> +</xsl:text> <xsl:text> this.update_state(); </xsl:text> <xsl:text> } @@ -6347,6 +6399,8 @@ </xsl:text> <xsl:text> } </xsl:text> + <xsl:text> // TODO : use RequestAnimate and animate() +</xsl:text> <xsl:text> } </xsl:text> <xsl:text>