diff -r 1ca0d7fdbe51 -r 2acdbc74bc24 java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Komentare.java --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Komentare.java Tue Jun 08 12:56:46 2010 +0200 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Komentare.java Tue Jun 08 13:29:13 2010 +0200 @@ -3,7 +3,6 @@ import cz.frantovo.nekurak.vyjimky.KomentarovaVyjimka; import java.io.ByteArrayInputStream; import java.net.URL; -import java.util.logging.Level; import java.util.logging.Logger; import javax.xml.XMLConstants; import javax.xml.parsers.DocumentBuilder; @@ -29,8 +28,31 @@ * @return XHTML komentář bez kořenového elementu */ public static String upravProstyText(String komentar) { - komentar = escapujXML(komentar); - return "

" + komentar.replaceAll("\n", "
") + "

"; + return zalomRadky(escapujXML(komentar)); + } + + /** + * Pokud uživatel zapomněl na odstavce, + * zalomíme řádky a zabalíme celý odstavec do jednoho odstavce + * @param komentar komentář bez odstavců + * @return komentář s odstavci + */ + public static String upravXHTML(String komentar) { + if (komentar.indexOf("

") == -1) { + return zalomRadky(komentar); + } else { + return komentar; + } + } + + /** + * Přidá na konce řádků <br/> + * a celé zabalí do <p/> + * @param komentar + * @return + */ + private static String zalomRadky(String komentar) { + return "

" + komentar.replaceAll("\n", "
\n") + "

"; } /** @@ -43,17 +65,17 @@ } /** - * zkontroluje komentář oproti schématu + * zkontroluje komentář oproti schématu. + * + * TODO: omezit maximální délku? + * TODO: omezit komentáře? + * * @param komentar * @return jestli komentář odpovídá */ - public static Document zkontroluj(String komentar) throws KomentarovaVyjimka { - - - - + public Document zkontroluj(String komentar) throws KomentarovaVyjimka { try { - URL soubor = ClassLoader.getSystemResource("cz/frantovo/nekurak/util/komentář.xsd"); + URL soubor = this.getClass().getClassLoader().getResource("cz/frantovo/nekurak/util/komentář.xsd"); SchemaFactory tovarnaSchemat = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schema = tovarnaSchemat.newSchema(soubor); @@ -68,15 +90,19 @@ } public void error(SAXParseException e) throws SAXException { + /** + * neodpovídá schématu + * TODO: poslat hlášku, v čem je chyba + */ throw e; } public void fatalError(SAXParseException e) throws SAXException { + /** invalidní XML – neuzavřené značky atd. */ throw e; } }); Document dokument = db.parse(new ByteArrayInputStream(komentar.getBytes("UTF-8"))); - return dokument; } catch (Exception e) { throw new KomentarovaVyjimka("Neplatný komentář: " + komentar, e);