Changeset 67:89b42acb3593

Show
Ignore:
Timestamp:
01/07/12 18:45:54 (13 years ago)
Author:
František Kučera <franta-hg@…>
Branch:
default
Message:

Diagramy #13: číslování v rámci stránky + u diagramů ze souboru použijeme název souboru se zadáním.

Location:
šablona
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java

    r61 r67  
    2424import java.net.URI; 
    2525import java.net.URISyntaxException; 
     26import java.net.URLDecoder; 
     27import java.nio.charset.Charset; 
    2628import static cz.frantovo.xmlWebGenerator.NástrojeCLI.*; 
    2729 
     
    4244        private static final String ADRESÁŘ_VÝSTUPNÍ = "výstup"; 
    4345        private static int počítadloDiagramů = 0; 
     46        private static String počítadloDiagramůKontext = ""; 
    4447 
    4548        /** 
     
    116119         * @param vodorovně zda má být graf orientovaný vodorovně (funguje jen při <code>kompletní = false</code>) 
    117120         * @param kompletní false, pokud k zadání chceme doplnit <code>digraph d {…}</code> 
     121         * @param kontext kam diagram patří – typicky název stránky, do které je vložen 
     122         * diagramy se pak budou číslovat v rámci tohoto kontextu  
     123         * → nebude docházet k přepisování diagramů jiných stránek při částečném přegenerování webu. 
     124         * @param souborZadání null pokud chceme automatické číslování | nebo zadáme název souboru se zadáním diagramu – vygenerovaný diagram se pak bude jmenovat stejně 
    118125         * @return název souboru bez přípony, který byl vytvořen, nebo null, pokud došlo k chybě. 
    119126         */ 
    120         public static String vytvořDiagram(String zadání, boolean vodorovně, boolean kompletní) throws IOException, InterruptedException { 
     127        public static String vytvořDiagram(String zadání, boolean vodorovně, boolean kompletní, String kontext, String souborZadání) throws IOException, InterruptedException { 
    121128                if (isPříkazDostupný(PŘÍKAZ_DOT)) { 
    122                         počítadloDiagramů++; 
    123                         String soubor = "diagram-" + počítadloDiagramů; 
     129                        System.err.println("XXX Kontext: " + URLDecoder.decode(kontext, Charset.defaultCharset().name())); 
     130                        System.err.println("XXX Soubor:  " + souborZadání); 
     131 
     132                        String soubor; 
     133                        if (souborZadání == null) { 
     134                                if (kontext == null) { 
     135                                        počítadloDiagramů++; 
     136                                        soubor = "diagram-" + počítadloDiagramů; 
     137                                } else { 
     138                                        // TODO: tohle by se mělo udělat v XSLT 
     139                                        kontext = URLDecoder.decode(kontext, Charset.defaultCharset().name()); 
     140                                         
     141                                        // Každá stránka bude mít svoje diagramy číslované od 1 
     142                                        if (!počítadloDiagramůKontext.equals(kontext)) { 
     143                                                počítadloDiagramůKontext = kontext; 
     144                                                počítadloDiagramů = 0; 
     145                                        } 
     146                                         
     147                                        počítadloDiagramů++; 
     148                                        soubor = "diagram-" + kontext + "-" + počítadloDiagramů; 
     149                                } 
     150                        } else { 
     151                                soubor = souborZadání; 
     152                        } 
    124153                        String souborSložka = ADRESÁŘ_VÝSTUPNÍ + File.separator + soubor; 
    125154 
  • šablona/makra/diagramy.xsl

    r61 r67  
    5252                <xsl:param name="zadání"/> 
    5353                <xsl:param name="kompletní"/> 
    54                 <xsl:variable name="souborDiagramu" select="j:vytvořDiagram($zadání, @orientace = 'vodorovně', $kompletní)"/> 
     54                <xsl:variable name="souborDiagramu" select="j:vytvořDiagram( 
     55                                                                                                                        $zadání,  
     56                                                                                                                        @orientace = 'vodorovně',  
     57                                                                                                                        $kompletní, 
     58                                                                                                                        tokenize(base-uri(), '/')[last()], 
     59                                                                                                                        @src 
     60                                                                                                                        )"/> 
    5561                <xsl:choose> 
    5662                        <xsl:when test="$souborDiagramu"> 
    5763                                <div class="diagram"> 
    58                                         <a href="{$souborDiagramu}.svg"> 
     64                                        <a href="{encode-for-uri($souborDiagramu)}.svg"> 
    5965                                                <img 
    60                                                         src="{$souborDiagramu}.svg"  
     66                                                        src="{encode-for-uri($souborDiagramu)}.svg"  
    6167                                                        alt="Diagram {(@nadpis, $souborDiagramu)[1]} | pokud nevidíte obrázek, váš prohlížeč stojí za starou bačkoru" 
    6268                                                        title="{@nadpis} (klikněte pro zobrazení samotného diagramu)"/>