diff -r a8085dedd92b -r 89b42acb3593 šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java --- a/šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java Sat Jan 07 17:34:57 2012 +0100 +++ b/šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java Sat Jan 07 18:45:54 2012 +0100 @@ -23,6 +23,8 @@ import java.util.Date; import java.net.URI; import java.net.URISyntaxException; +import java.net.URLDecoder; +import java.nio.charset.Charset; import static cz.frantovo.xmlWebGenerator.NástrojeCLI.*; /** @@ -41,6 +43,7 @@ private static final String PŘÍKAZ_MARKDOWN = "markdown"; private static final String ADRESÁŘ_VÝSTUPNÍ = "výstup"; private static int počítadloDiagramů = 0; + private static String počítadloDiagramůKontext = ""; /** * Zjištuje, kdy byl naposledy daný soubor změněn. @@ -115,12 +118,38 @@ * @param zadání definice diagramu ve formátu dot * @param vodorovně zda má být graf orientovaný vodorovně (funguje jen při kompletní = false) * @param kompletní false, pokud k zadání chceme doplnit digraph d {…} + * @param kontext kam diagram patří – typicky název stránky, do které je vložen + * diagramy se pak budou číslovat v rámci tohoto kontextu + * → nebude docházet k přepisování diagramů jiných stránek při částečném přegenerování webu. + * @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ě * @return název souboru bez přípony, který byl vytvořen, nebo null, pokud došlo k chybě. */ - public static String vytvořDiagram(String zadání, boolean vodorovně, boolean kompletní) throws IOException, InterruptedException { + public static String vytvořDiagram(String zadání, boolean vodorovně, boolean kompletní, String kontext, String souborZadání) throws IOException, InterruptedException { if (isPříkazDostupný(PŘÍKAZ_DOT)) { - počítadloDiagramů++; - String soubor = "diagram-" + počítadloDiagramů; + System.err.println("XXX Kontext: " + URLDecoder.decode(kontext, Charset.defaultCharset().name())); + System.err.println("XXX Soubor: " + souborZadání); + + String soubor; + if (souborZadání == null) { + if (kontext == null) { + počítadloDiagramů++; + soubor = "diagram-" + počítadloDiagramů; + } else { + // TODO: tohle by se mělo udělat v XSLT + kontext = URLDecoder.decode(kontext, Charset.defaultCharset().name()); + + // Každá stránka bude mít svoje diagramy číslované od 1 + if (!počítadloDiagramůKontext.equals(kontext)) { + počítadloDiagramůKontext = kontext; + počítadloDiagramů = 0; + } + + počítadloDiagramů++; + soubor = "diagram-" + kontext + "-" + počítadloDiagramů; + } + } else { + soubor = souborZadání; + } String souborSložka = ADRESÁŘ_VÝSTUPNÍ + File.separator + soubor; String zdroják;