Show
Ignore:
Timestamp:
01/06/12 21:58:52 (12 years ago)
Author:
František Kučera <franta-hg@…>
Branch:
default
Message:

Diagramy #13: možnost načítání ze souboru.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • šablona/makra/diagramy.xsl

    r51 r52  
    77        exclude-result-prefixes="m j"> 
    88     
    9     <!-- 
    10         Diagramy/grafy 
    11         ************** 
    12         Můžeme vložit diagram – obrázek. 
    13         Pro jejich vykreslování se používá Graphviz – diagramy zadáváme v jeho syntaxi. 
    14         * 
    15         @orientace „vodorovně“ nebo „svisle“ (výchozí) 
    16         @nadpis můžeme uvést název diagramu 
    17     --> 
    18     <xsl:template match="m:diagram"> 
    19         <!--  
    20                 TODO: umožnit vkládání diagramů ze souboru (@src)  
    21         --> 
    22         <xsl:variable name="souborDiagramu" select="j:vytvořDiagram(text(), @orientace = 'vodorovně')"/> 
    23         <xsl:choose> 
     9        <!-- 
     10                Diagramy/grafy 
     11                ************** 
     12                Můžeme vložit diagram – obrázek. 
     13                Pro jejich vykreslování se používá Graphviz – diagramy zadáváme v jeho syntaxi. 
     14                * 
     15                @orientace „vodorovně“ nebo „svisle“ (výchozí) 
     16                @nadpis můžeme uvést název diagramu 
     17                @kompletní „ano“ → předpokládáme kompletní zdroják v GraphViz syntaxi (pak nemá smysl uvádět orientaci). Výchozí je však „ne“ → uživatel zadává jen „vnitřek“ grafu – např. „A -> B; B -> C;“.   
     18                @src zadání diagramu načteme ze souboru (potom je výchozí kompletní = 'ne') 
     19        --> 
     20        <xsl:template match="m:diagram"> 
     21                <xsl:call-template name="vložDiagram"> 
     22                        <xsl:with-param name="zadání" select="text()"/> 
     23                        <xsl:with-param name="kompletní" select="@kompletní = 'ano'"/> 
     24                </xsl:call-template> 
     25        </xsl:template> 
     26         
     27        <xsl:template match="m:diagram[@src]"> 
     28                <xsl:call-template name="vložDiagram"> 
     29                        <xsl:with-param name="zadání" select="unparsed-text(concat('../', $vstup, @src))"/> 
     30                        <xsl:with-param name="kompletní" select="not(@kompletní) or @kompletní = 'ano'"/> 
     31                </xsl:call-template> 
     32        </xsl:template> 
     33     
     34    <xsl:template name="vložDiagram"> 
     35                <xsl:param name="zadání"/> 
     36                <xsl:param name="kompletní"/> 
     37                <xsl:variable name="souborDiagramu" select="j:vytvořDiagram($zadání, @orientace = 'vodorovně', $kompletní)"/> 
     38                <xsl:choose> 
    2439                        <xsl:when test="$souborDiagramu"> 
    2540                                <div class="diagram"> 
     
    3449                                                <xsl:variable name="svgDiagramu" select="document(concat($výstup, $souborDiagramu, '.svg'))/svg:svg"/> 
    3550                                                <object 
    36                                                         data="{$souborDiagramu}.svg" 
    37                                                         type="image/svg+xml" 
    38                                                         style="width: {$svgDiagramu/@width}; height: {$svgDiagramu/@height}"> 
    39                                                                 <img src="{$souborDiagramu}.png" alt="Diagram {$souborDiagramu}"/> 
     51                                                data="{$souborDiagramu}.svg" 
     52                                                type="image/svg+xml" 
     53                                                style="width: {$svgDiagramu/@width}; height: {$svgDiagramu/@height}"> 
     54                                                <img src="{$souborDiagramu}.png" alt="Diagram {$souborDiagramu}"/> 
    4055                                                </object> 
    4156                                        --> 
     
    4863                                <xsl:message terminate="yes">Při vytváření diagramu došlo k chybě.</xsl:message> 
    4964                        </xsl:otherwise> 
    50         </xsl:choose> 
    51     </xsl:template> 
     65                </xsl:choose> 
     66        </xsl:template> 
    5267 
    5368</xsl:stylesheet>