• Nebyly nalezeny žádné výsledky

K vygenerování textové podoby ŠkVP byly použity: Freemarker, DocBook, SAXParser, FOP. Výsledný pdf dokument poté slouží k archivaci po dobu 5 let.

Celý proces tvorby pdf dokumentu zaˇcal tvorbou šablony ve Freemarkeru, která vy-generovala textový výstup. Ten sloužil jako vstup pro DocBook, ze kterého vznikl pˇres SAXParser XML soubor (výpis ˇc.11). Pro další použití se musel tento soubor následnˇe pˇrevést pomocí FOPu do PDF. FOP je formátovací nástroj, který ze stromové reprezen-tace dat (XML) vytváˇrí soubory urˇcené k tisku.

3.2.1 Pˇríprava dat

Data pro šablonu Freemarkeru ke generování textového výstupu metod, postup ˚u a forem tématického celku se pˇripravují do mapy, kde se k hodnotám pˇristupuje pˇres námi de-finovaný klíˇc. Do hlavní mapymap, ze které pˇrebírá Freemarker data, se pˇridává mapa,

Obrázek 4: Vygenerovaný výstup pomocí Docbooku

která obsahuje seznam metod, postup ˚u a forem. Do vnoˇrené mapympf se vkládají vý-sledky z dotaz ˚u funkce getMpf(), která vrací konkrétní seznam pro tématický celek podle jeho id a hodnoty stringu urˇcující, zda se jedná o metody, postupy, nebo formy.

Map<String, Object> map =newHashMap<>();

Map<Long, Map<String, List<MetodyPostupyFormy>>> metodyPostupyFormyMap =new LinkedHashMap<>();

...

Map<String, List<MetodyPostupyFormy>> mpf =newLinkedHashMap<>();

mpf.put(GeneratorConstants.FORMA, VazbaSmMpfLocalServiceUtil.getMpf(standardMnozina.getId (), GeneratorConstants.FORMA));

mpf.put(GeneratorConstants.POSTUP, VazbaSmMpfLocalServiceUtil.getMpf(standardMnozina.

getId(), GeneratorConstants.POSTUP));

mpf.put(GeneratorConstants.METODA, VazbaSmMpfLocalServiceUtil.getMpf(standardMnozina.

getId(), GeneratorConstants.METODA));

metodyPostupyFormyMap.put(standardMnozina.getId(), mpf);

...

map.put(GeneratorConstants.METODY_POSTUPY_FORMY, metodyPostupyFormyMap);

Výpis 9: Pˇríprava dat pro Freemarker

3.2.2 Šablona

Následující šablona pˇristupuje k pˇripraveným dat ˚um v pˇredchozí ˇcásti. Z ukázky šab-lony se týkají Freemarkeru pouze jeho direktivy, které napl ˇnují tabulku daty. Tagy, které tvoˇrí vzhled tabulky patˇrí k Docbooku, jehož ˇcást rozeberu o kapitolu níže.

Nejprve se do promˇennémetodyPostupyFormyMappˇriˇradí mapa podle id tématic-kého celku. Hlaviˇcka a tˇelo tabulky v DocBooku musí mít shodný poˇcet sloupc ˚u, proto se pˇred tvorbou tabulky kontroluje, zda alespo ˇn jeden seznam není prázdný, protože nepotˇrebujeme generovat do dokumentu prázdnou tabulku (obrázek ˇc.4). Do hlaviˇcek

sloupc ˚u se vloží hodnoty ze souboru s lokalizovanými texty. Pro každý sloupec se zjiš-t’uje, jestli není seznam prázdný. V pˇrípadˇe, že seznam obsahuje nˇejaká data, tak se pro-chází v cyklu <#foreach> seznam a vkládá se text do sloupce. V uvedené ukázce je znázornˇeno vkládání textu pro jeden sloupec - formy. Ve zbylých sloupcích se provádí stejný postup napl ˇnování textem.

...

<#assign metodyPostupyFormyMap = metodyPostupyFormy.get(tematickyCelek.id) >

<#if metodyPostupyFormyMap.get(’METODA’)?has_content ||

<tgroup cols=’3’ align=’ left ’ colsep=’1’ rowsep=’1’>

<colspec colname=’metody’/>

< itemizedlist mark=’bullet ’ >

<#assign metody = metodyPostupyFormyMap.get(’METODA’) >

<#foreach metoda in metody>

Výpis 10: Ukázka ˇcásti šablony Freemarkeru

3.2.3 Výstup

Tabulka je tvoˇrena pomocí DocBooku, která se skládá z další vnoˇrené tabulky pro me-tody, postupy a formy. Vnˇejší tabulka je definována pomocí dvou sloupc ˚u evsrs-vyko-nove-standardy a evsrs-obsahove-standardy, kde se pro název a popis celku oba slouˇcily. Ve vnˇejší tabulce se musely pro úˇcely slouˇcení sloupce pojmenovat pomocí hodnoty pˇredané do atributu<colspec colname=’’/>. Pro metody, postupy a formy bylo potˇreba tabulku rozšíˇrit o 1 sloupec. To se provedlo roztažením vnitˇrní tabulky pˇres oba pojmenované sloupce použitím<entry namest=""anameend="">, které urˇcuje hranice vnitˇrní tabulky.

<entry namest="evsrs−vykonove−standardy" nameend="evsrs−obsahove−standardy">

<informaltable frame=’none’ pgwide="1">

<tgroup cols=’3’ align=’ left ’ colsep=’1’ rowsep=’1’>

<colspec colname=’metody’/>

< itemizedlist mark=’bullet ’ >

< listitem >

<para>fixa´cnámetóda opakovania a precvi´covania vedomostí a spó sobilostíústne opakovanie u´civa ´ziakom</para>

</ listitem >

Výpis 11: Ukázka XML souboru z vygenerovaného textu

4 Záv ˇer

Na praxi jsem pˇricházel bez jakýchkoliv znalostí programování webových aplikací. Když jsem se po krátké dobˇe na zauˇcení dovˇedˇel, ˇceho se bude moje praxe týkat, nebyl jsem si jistý, zda tento úkol zvládnu. Práce na projektu kladla jak na mˇe, tak i na konzultanta mé praxe velkou zodpovˇednost, který musel testovat kromˇe své i mou implementova-nou ˇcást projektu. Postupem ˇcasu jsem se nauˇcil pracovat s jednotlivými technologiemi, jejichž znalost mi bude pˇrínosem do budoucna - hlavnˇe v používání verzovacích sys-tém ˚u. Za významnou zkušenost také považuji, že jsem se mohl podílet na vývoji v týmu reálného projektu, kde bylo d ˚uležité mezi sebou komunikovat, koordinovat svou práci a reagovat na požadavky zákazníka. V dobˇe psaní této práce byl projekt odevzdán na testování. Z dosavadních informací se na naši stranˇe neobjevila žádná výrazná imple-mentaˇcní chyba.

Vzhledem k vývoji informaˇcních technologií je zˇrejmé, že bude aktuální informaˇcní systém za nˇekolik let zastaralý. V pr ˚ubˇehu záruˇcní doby 5 let, která je poskytována na dodávaný software, bude potˇreba sledovat nové verze technologií použitých v tomto projektu a ˇrešit aktualizace softwaru se zákazníkem.

5 Reference

[1] dokumentace Hibernate.

URL:<http://hibernate.org>[cit. 2015-4-28].

[2] Hibernate tutorial.

URL:<http://www.tutorialspoint.com/hibernate/index.htm>[cit. 2015-4-28].

[3] Specifikace Java Persistence API.

URL:<http://docs.oracle.com/javaee/7/api/javax/persistence/package-summary.html>

[cit. 2015-4-28].

[4] dokumentace Liferay Portal.

URL:<http://www.liferay.com/products/liferay-portal/overview>[cit. 2015-4-28].

[5] dokumentace Primefaces.

URL:<http://www.primefaces.org>[cit. 2015-4-28].

[6] dokumentace Git.

URL:<http://git-scm.com/book/en/v2>[cit. 2015-4-28].

[7] Krˇcmáˇr, Petr, Jak se pˇrihlašovat na SSH bez zadávání hesla.

URL:<http://www.root.cz/clanky/jak-se-prihlasovat-na-ssh-bez-zadavani-hesla>

[cit. 2015-4-28].

[8] dokumentace DocBook.

URL:<http://docbook.cz>[cit. 2015-4-28].

[9] Horáˇcek, Petr, Java na Webu II. - Základní stavba.

URL:<http://www.linuxsoft.cz/article.php?id_article=1970>[cit. 2015-4-28].

[10] webové aplikace.

URL:<https://kore.fi.muni.cz/wiki/index.php/Kategorie:Webové_aplikace>[cit. 2015-4-28].

[11] Komponentní technologie.

URL:<http://www.cs.vsb.cz/benes/vyuka/pte/texty/komponenty/index.html>

[cit. 2015-4-28].

[12] Basic JSP Tutorial.

URL:<http://www.tutorialspoint.com/jsp/>[cit. 2015-4-28].

[13] dokumentace Apache Maven.

URL:<https://maven.apache.org>[cit. 2015-4-28].

[14] dokumentace Java EE 6.

URL:<http://docs.oracle.com/javaee/6/tutorial/doc>[cit. 2015-4-28].

[15] uzavˇrená smlouva s MŠVVaŠ SR.

URL:<http://crdvo.uvo.gov.sk>[cit. 2015-4-28].