Changeset 67:89b42acb3593
- 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:
-
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)"/> |