Mercurial > dive4elements > river
view artifacts/contrib/visualize-transitions.xsl @ 6110:5ba28b563614
Fix datacage for user data by adding facet filtering.
Now the facets are joined in the user data select statement
and afterwards we just filter on the facet name where previously
new queryies were created.
Grouping also fixes the repeating folders caused by the change
in the statements during the large perfomance cleanup.
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Mon, 27 May 2013 15:36:56 +0200 |
parents | 5aa05a7a34b7 |
children |
line wrap: on
line source
<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright (c) 2010 by Intevation GmbH This program is free software under the LGPL (>=v2.1) Read the file LGPL.txt coming with the software for details or visit http://www.gnu.org/licenses/ if it does not exist. Author: Sascha L. Teichmann (sascha.teichmann@intevation.de) --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0"> <xsl:output method="text" encoding="UTF-8"/> <xsl:param name="base-dir">.</xsl:param> <xsl:template match="/"> <xsl:text>digraph transition_model {
</xsl:text> <xsl:apply-templates /> <xsl:text>}
</xsl:text> </xsl:template> <xsl:template match="artifact"> <xsl:choose> <xsl:when test="@xlink:href != ''"> <!-- handle external artifacts --> <xsl:variable name="path"> <xsl:call-template name="string-replace-all"> <xsl:with-param name="text" select="@xlink:href" /> <xsl:with-param name="replace">${artifacts.config.dir}</xsl:with-param> <xsl:with-param name="by" select="$base-dir" /> </xsl:call-template> </xsl:variable> <xsl:for-each select="document($path)"> <xsl:apply-templates select="/artifact"/> </xsl:for-each> </xsl:when> <xsl:otherwise> <!-- handle internal artifacts --> <xsl:text>subgraph </xsl:text><xsl:value-of select="@name"/> <xsl:text> {
</xsl:text> <xsl:text> label = "Artefakt: </xsl:text> <xsl:value-of select="@name"/> <xsl:text>";
</xsl:text> <xsl:apply-templates mode="inside-artifact" select="./states/state"/> <xsl:apply-templates mode="inside-artifact" select="./states/transition"/> <xsl:text>}
</xsl:text> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template match="state" mode="inside-artifact"> <xsl:text> "</xsl:text> <xsl:value-of select="@id"/> <xsl:text disable-output-escaping="yes" >" [ shape = "record" label=<<table border="0" cellborder="0" cellpadding="3"> <tr><td align="center" colspan="2" bgcolor="black"><font color="white"></xsl:text> <xsl:value-of select="@id"/> <xsl:text disable-output-escaping="yes" ></font></td></tr></xsl:text> <xsl:apply-templates mode="inside-artifact" /> <xsl:text disable-output-escaping="yes" ></table>>]</xsl:text> <xsl:text>;
</xsl:text> </xsl:template> <xsl:template match="data" mode="inside-artifact"> <xsl:text disable-output-escaping="yes" ><tr><td align="right"></xsl:text> <xsl:value-of select="@name"/> <xsl:text disable-output-escaping="yes" ></td><td align="left"></xsl:text> <xsl:value-of select="@type"/> <xsl:text disable-output-escaping="yes" ></td></tr></xsl:text> </xsl:template> <xsl:template match="transition" mode="inside-artifact"> <xsl:text> "</xsl:text> <xsl:value-of select="from/@state"/> <xsl:text disable-output-escaping="yes">" -> "</xsl:text> <xsl:value-of select="to/@state"/> <xsl:text>"</xsl:text> <xsl:apply-templates mode="inside-artifact"/> <xsl:text>;
</xsl:text> </xsl:template> <xsl:template match="condition" mode="inside-artifact"> <xsl:text> [ label="</xsl:text> <xsl:value-of select="@data"/> <xsl:text> </xsl:text> <xsl:call-template name="readable-operator"> <xsl:with-param name="operator" select="@operator"/> </xsl:call-template> <xsl:text> </xsl:text> <xsl:value-of select="@value"/> <xsl:text>" ]</xsl:text> </xsl:template> <xsl:template match="text()" mode="inside-artifact"/> <xsl:template match="text()"/> <xsl:template name="readable-operator"> <xsl:param name="operator" /> <xsl:choose> <xsl:when test='$operator = "equal"'>=</xsl:when> <xsl:when test='$operator = "notequal"'>!=</xsl:when> <xsl:otherwise><xsl:value-of select="$operator"/></xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="string-replace-all"> <xsl:param name="text" /> <xsl:param name="replace" /> <xsl:param name="by" /> <xsl:choose> <xsl:when test="contains($text, $replace)"> <xsl:value-of select="substring-before($text,$replace)" /> <xsl:value-of select="$by" /> <xsl:call-template name="string-replace-all"> <xsl:with-param name="text" select="substring-after($text,$replace)" /> <xsl:with-param name="replace" select="$replace" /> <xsl:with-param name="by" select="$by" /> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$text" /> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet>