Changeset 67:89b42acb3593
- Timestamp:
- 01/07/12 18:45:54 (14 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:
-
Legend:
- Unmodified
- Added
- Removed
-
|
r61
|
r67
|
|
| 24 | 24 | import java.net.URI; |
| 25 | 25 | import java.net.URISyntaxException; |
| | 26 | import java.net.URLDecoder; |
| | 27 | import java.nio.charset.Charset; |
| 26 | 28 | import static cz.frantovo.xmlWebGenerator.NástrojeCLI.*; |
| 27 | 29 | |
| … |
… |
|
| 42 | 44 | private static final String ADRESÁŘ_VÝSTUPNÍ = "výstup"; |
| 43 | 45 | private static int počítadloDiagramů = 0; |
| | 46 | private static String počítadloDiagramůKontext = ""; |
| 44 | 47 | |
| 45 | 48 | /** |
| … |
… |
|
| 116 | 119 | * @param vodorovně zda má být graf orientovaný vodorovně (funguje jen při <code>kompletní = false</code>) |
| 117 | 120 | * @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ě |
| 118 | 125 | * @return název souboru bez přípony, který byl vytvořen, nebo null, pokud došlo k chybě. |
| 119 | 126 | */ |
| 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 { |
| 121 | 128 | 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 | } |
| 124 | 153 | String souborSložka = ADRESÁŘ_VÝSTUPNÍ + File.separator + soubor; |
| 125 | 154 | |
-
|
r61
|
r67
|
|
| 52 | 52 | <xsl:param name="zadání"/> |
| 53 | 53 | <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 | )"/> |
| 55 | 61 | <xsl:choose> |
| 56 | 62 | <xsl:when test="$souborDiagramu"> |
| 57 | 63 | <div class="diagram"> |
| 58 | | <a href="{$souborDiagramu}.svg"> |
| | 64 | <a href="{encode-for-uri($souborDiagramu)}.svg"> |
| 59 | 65 | <img |
| 60 | | src="{$souborDiagramu}.svg" |
| | 66 | src="{encode-for-uri($souborDiagramu)}.svg" |
| 61 | 67 | alt="Diagram {(@nadpis, $souborDiagramu)[1]} | pokud nevidíte obrázek, váš prohlížeč stojí za starou bačkoru" |
| 62 | 68 | title="{@nadpis} (klikněte pro zobrazení samotného diagramu)"/> |