šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java
changeset 68 2e6d7bfcd84f
parent 67 89b42acb3593
child 69 e7908e307b61
equal deleted inserted replaced
67:89b42acb3593 68:2e6d7bfcd84f
    40 
    40 
    41 	private static final String PŘÍKAZ_PYGMENTIZE = "pygmentize";
    41 	private static final String PŘÍKAZ_PYGMENTIZE = "pygmentize";
    42 	private static final String PŘÍKAZ_DOT = "dot";
    42 	private static final String PŘÍKAZ_DOT = "dot";
    43 	private static final String PŘÍKAZ_MARKDOWN = "markdown";
    43 	private static final String PŘÍKAZ_MARKDOWN = "markdown";
    44 	private static final String ADRESÁŘ_VÝSTUPNÍ = "výstup";
    44 	private static final String ADRESÁŘ_VÝSTUPNÍ = "výstup";
       
    45 	private static final String ADRESÁŘ_DIAGRAMY = "diagramy";
    45 	private static int počítadloDiagramů = 0;
    46 	private static int počítadloDiagramů = 0;
    46 	private static String počítadloDiagramůKontext = "";
    47 	private static String počítadloDiagramůKontext = "";
    47 
    48 
    48 	/**
    49 	/**
    49 	 * Zjištuje, kdy byl naposledy daný soubor změněn.
    50 	 * Zjištuje, kdy byl naposledy daný soubor změněn.
   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ě
   125 	 * @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ě
   125 	 * @return název souboru bez přípony, který byl vytvořen, nebo null, pokud došlo k chybě.
   126 	 * @return název souboru bez přípony, který byl vytvořen, nebo null, pokud došlo k chybě.
   126 	 */
   127 	 */
   127 	public static String vytvořDiagram(String zadání, boolean vodorovně, boolean kompletní, String kontext, String souborZadání) throws IOException, InterruptedException {
   128 	public static String vytvořDiagram(String zadání, boolean vodorovně, boolean kompletní, String kontext, String souborZadání) throws IOException, InterruptedException {
   128 		if (isPříkazDostupný(PŘÍKAZ_DOT)) {
   129 		if (isPříkazDostupný(PŘÍKAZ_DOT)) {
   129 			System.err.println("XXX Kontext: " + URLDecoder.decode(kontext, Charset.defaultCharset().name()));
       
   130 			System.err.println("XXX Soubor:  " + souborZadání);
       
   131 
   130 
   132 			String soubor;
   131 			String soubor;
   133 			if (souborZadání == null) {
   132 			if (souborZadání == null) {
   134 				if (kontext == null) {
   133 				if (kontext == null) {
   135 					počítadloDiagramů++;
   134 					počítadloDiagramů++;
   148 					soubor = "diagram-" + kontext + "-" + počítadloDiagramů;
   147 					soubor = "diagram-" + kontext + "-" + počítadloDiagramů;
   149 				}
   148 				}
   150 			} else {
   149 			} else {
   151 				soubor = souborZadání;
   150 				soubor = souborZadání;
   152 			}
   151 			}
   153 			String souborSložka = ADRESÁŘ_VÝSTUPNÍ + File.separator + soubor;
   152 			File adresářDiagramů = new File(ADRESÁŘ_VÝSTUPNÍ, ADRESÁŘ_DIAGRAMY);
       
   153 			if (!adresářDiagramů.exists()) {
       
   154 				adresářDiagramů.mkdirs();
       
   155 			}
       
   156 			String souborSložka = ADRESÁŘ_VÝSTUPNÍ + File.separator + ADRESÁŘ_DIAGRAMY + File.separator + soubor;
   154 
   157 
   155 			String zdroják;
   158 			String zdroják;
   156 			if (kompletní) {
   159 			if (kompletní) {
   157 				zdroják = zadání;
   160 				zdroják = zadání;
   158 			} else {
   161 			} else {
   180 			String chyby = načtiProud(p.getErrorStream());
   183 			String chyby = načtiProud(p.getErrorStream());
   181 
   184 
   182 			p.waitFor();
   185 			p.waitFor();
   183 
   186 
   184 			if (chyby.length() == 0) {
   187 			if (chyby.length() == 0) {
   185 				return soubor;
   188 				return ADRESÁŘ_DIAGRAMY + File.separator + soubor;
   186 			} else {
   189 			} else {
   187 				System.err.print("Při vytváření diagramu došlo k chybě: " + chyby);
   190 				System.err.print("Při vytváření diagramu došlo k chybě: " + chyby);
   188 				return null;
   191 				return null;
   189 			}
   192 			}
   190 		} else {
   193 		} else {