šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java
changeset 58 9402e5d1df7c
parent 43 4a4364826e59
child 61 9503eb8377f1
     1.1 --- a/šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java	Thu Jan 05 11:01:25 2012 +0100
     1.2 +++ b/šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java	Sat Jan 07 12:42:03 2012 +0100
     1.3 @@ -1,7 +1,6 @@
     1.4  package cz.frantovo.xmlWebGenerator;
     1.5  
     1.6  import java.io.File;
     1.7 -import java.io.FileInputStream;
     1.8  import java.io.IOException;
     1.9  import java.io.PrintStream;
    1.10  import java.util.Date;
    1.11 @@ -23,7 +22,6 @@
    1.12  	private static final String PŘÍKAZ_PYGMENTIZE = "pygmentize";
    1.13  	private static final String PŘÍKAZ_DOT = "dot";
    1.14  	private static final String PŘÍKAZ_MARKDOWN = "markdown";
    1.15 -	private static final String ADRESÁŘ_VSTUPNÍ = "vstup";
    1.16  	private static final String ADRESÁŘ_VÝSTUPNÍ = "výstup";
    1.17  	private static int počítadloDiagramů = 0;
    1.18  
    1.19 @@ -98,24 +96,30 @@
    1.20  	/**
    1.21  	 * Vytvoří obrázek s diagramem.
    1.22  	 * @param zadání definice diagramu ve formátu dot
    1.23 -	 * @param vodorovně zda má být graf orientovaný vodorovně
    1.24 +	 * @param vodorovně zda má být graf orientovaný vodorovně (funguje jen při <code>kompletní = false</code>)
    1.25 +	 * @param kompletní false, pokud k zadání chceme doplnit <code>digraph d {…}</code>
    1.26  	 * @return název souboru bez přípony, který byl vytvořen, nebo null, pokud došlo k chybě.
    1.27  	 */
    1.28 -	public static String vytvořDiagram(String zadání, boolean vodorovně) throws IOException, InterruptedException {
    1.29 +	public static String vytvořDiagram(String zadání, boolean vodorovně, boolean kompletní) throws IOException, InterruptedException {
    1.30  		if (isPříkazDostupný(PŘÍKAZ_DOT)) {
    1.31  			počítadloDiagramů++;
    1.32  			String soubor = "diagram-" + počítadloDiagramů;
    1.33  			String souborSložka = ADRESÁŘ_VÝSTUPNÍ + File.separator + soubor;
    1.34  
    1.35 -			StringBuilder zdroják = new StringBuilder(zadání.length() + 200);
    1.36 -
    1.37 -			zdroják.append("digraph d {\n");
    1.38 -			zdroják.append("\tbgcolor=\"transparent\";\n");
    1.39 -			if (vodorovně) {
    1.40 -				zdroják.append("\trankdir=LR;");
    1.41 +			String zdroják;
    1.42 +			if (kompletní) {
    1.43 +				zdroják = zadání;
    1.44 +			} else {
    1.45 +				StringBuilder b = new StringBuilder(zadání.length() + 200);
    1.46 +				b.append("digraph d {\n");
    1.47 +				b.append("\tbgcolor=\"transparent\";\n");
    1.48 +				if (vodorovně) {
    1.49 +					b.append("\trankdir=LR;");
    1.50 +				}
    1.51 +				b.append(zadání);
    1.52 +				b.append("}\n");
    1.53 +				zdroják = b.toString();
    1.54  			}
    1.55 -			zdroják.append(zadání);
    1.56 -			zdroják.append("}\n");
    1.57  
    1.58  			Runtime r = Runtime.getRuntime();
    1.59  			Process p = r.exec(new String[]{PŘÍKAZ_DOT, "-T", "svg", "-o", souborSložka + ".svg"});