<chapter id="code-import-generation">

<title>Import a generovanie zdrojového kódu</title>

<para> 
Umbrello modelovací nástroj UML a jeho použitie tkvie v <emphasis>analýze
a návrhu </emphasis> systémov. Pre zjednodušenie prechodu od návrhu k
<emphasis>implementácii</emphasis> dokáže Umbrello vygenerovať zdrojový text pre
mnoho programovacích jazykov. Ak však chcete UML nasadiť v už existujúcom
projekte, podporuje Umbrello vytvorenie modelu už existujúceho modelu tým, že
načíta zdrojový text a vytvorí nájdené triedy.
</para>

<sect1 id="code-generation">

<title>Generovanie zdrojového kódu</title>

<para>
Umbrello dokáže vygenerovať zdrojový text v mnohých programovacích jazykoch a
pomáha pritom pri začiatkoch implementácie. Vygenerovaný zdrojový text pozostáva
z deklarácií tried, metód a atribútov. Tieto oddiely musí programátor
<quote>správne vyplniť</quote>, aby pridal funkcionalitu do operácií tried.
</para>

<para>
Umbrello 1.1 dokáže vygenerovať zdrojový kód pre jazyky C++, Java a PHP.  Iné
jazyky je možné jednoducho pridať ako zásuvné moduly aj neskôr.
</para>

<sect2 id="add-languages">

<title>Pridanie jazyka</title>

<para>
Umbrello 1.1 sa dodáva s podporou pre generovanie zdrojového kódu pre jazyky
C++, Java a PHP. Tieto jazyky sa pri prvom štarte Umbrello pridajú do zoznamu
dostupných jazykov. Neskôr je možné si stiahnuť a prostredníctvom mechanizmu
zásuvných modulov do programu pridať.
</para>
<para>
Pri každom štarte Umbrello testuje, či existujú nové zásuvné moduly. Potom
vyžaduje súhlas s pridaním jazykov, ktoré majú byť zavedené ako nové
(Jeden zásuvný modul môže obsahovať generátor zdrojového kódu pre viaceré
jazyky). Jazyky môžeme pridať alebo odobrať pomocou položky
<guimenuitem>Pridať/odobrať jazyky pre generovanie kódu</guimenuitem> z menu
Kód.
</para>
<para>
	<screenshot>
		<screeninfo>Pridať/odobrať jazyky</screeninfo>
		<mediaobject>
			<imageobject>
				<imagedata fileref="pics/add-remove-languages.png"
				format="PNG"/>
			</imageobject>
			<textobject>
				<phrase>
				Odstrániť alebo pridať jazyk pre generovanie zdrojového kódu
				v Umbrello
				</phrase>
			</textobject>
			<caption>
				<para>
				Odstrániť alebo pridať jazyk pre generovanie zdrojového kódu
				v Umbrello
				</para>
			</caption>
		</mediaobject>
	</screenshot>
</para>
</sect2>

<!--add-languages-->
<sect2 id="generate-code">
<title>Generovanie zdrojového kódu</title>

<para> 
Aby sme mohli vygenerovať zdrojový kód pomocou programu Umbrello, musíme prv 
načítať model, ktorý obsahuje aspoň jednu triedu. Ak chceme vygenerovať zdrojový 
kód, musíme spustiť <guimenuitem>Asistenta pre generovanie zdrojového
kódu...</guimenuitem> z menu <guimenuitem>Kód</guimenuitem>. Tým sa spustí
asistent, ktorý nás prevedie procesom vytvorenia zdrojového kódu.
</para>

<para>
V prvom kroku treba vybrať triedy, pre ktoré chceme vygenerovať kód. Na začiatku
sú všetky triedy modelu vybrané a je možné ich odstrániť len po jednom. Ak to
chceme dosiahnuť, musíme ich premiestniť z pravého zoznamu do ľavého
zoznamu.
</para>

<para>
Ako ďalší krok asistenta môžeme zmeniť parametre generátora zdrojového kódu. Sú
dostupné tieto parametre:
</para>

<para>
	<screenshot>
		<screeninfo>Parametre zdrojového kódu</screeninfo>
		<mediaobject>
			<imageobject>
				<imagedata fileref="pics/generation-options.png" format="PNG"/>
			</imageobject>
			<textobject>
				<phrase>Parametre pre generovanie zdrojového kódu pomocou Umbrello
				</phrase>
			</textobject>
			<caption>
				<para>
				Parametre pre generovanie zdrojového kódu pomocou Umbrello
				</para>
			</caption>
		</mediaobject>
	</screenshot>
</para>

<sect3 id="generation-options">

<title>Nastavenia generovania</title>

<sect4>
	<title>Dokumentácia zdrojového kódu</title>

	<para>
	Parameter <guilabel>Zapísať dokumentačné komentáre, aj keď sú prázdne
	</guilabel> hovorí generátoru zdrojového kódu, aby vložil komentáre v tvare
	<emphasis>/** bla-bla */</emphasis> aj vtedy, ak sú prázdne. Ak triedy, metódy a
	atribúty boli v modeli dokumentované, vloží generátor zdrojového kódu tieto
	komentáre vo formáte Doxygen, nezávisle od toho, čo bolo v tomto kroku vybrané.
	Ak tento parameter je zapnutý, bude pre všetky triedy, metódy a atribúty
	vložené miesta pre dokumentáciu, aj keď v modeli neboli tieto prvky
	zdokumentované. Dokumentáciu by mal potom programátor zapísať priamo v
	zdrojovom kóde na tieto miesta.
	</para>

	<para>
	<guilabel>Zapísať komentáre pre sekcie, aj keď sú prázdne</guilabel>: Umbrello
	zapíše komentáre do zdrojového kódu pre oddelenie jednotlivých sekcií triedy.
	Tým sa oddelia napr. <quote>metódy typu <emphasis>public</emphasis></quote> alebo
	<quote>atribúty</quote> a vkladajú sa pred príslušné sekcie. Ak bol tento
	parameter aktivovaný, bude pre každú sekciu vložený takýto komentár, aj keď je
	sekcia prázdna. Takto by sa vložil komentár <quote>metódy typu <emphasis>protected
	</emphasis></quote>, aj keď žiadne také metódy v triede neexistujú.
	</para>
</sect4>

<sect4>
	<title>Priečinky</title>

	<para>
	<guilabel>Zapísať všetky generované hlavičky do priečinku</guilabel>: tu si
	môžeme vybrať priečinok, kam sa budú ukladať hlavičkové súbory zdrojového kódu.
	</para>
	
	<para>
	Parameter <guilabel>Vložiť hlavičkové súbory z priečinku</guilabel> umožňuje
	vložiť hlavičku na začiatok každého vygenerovaného súboru. Tieto hlavičky
	súborov môžu obsahovať informácie o vlastníctve alebo informácie o licencii,
	ako aj premenných, ktoré budú počas generovania zdrojového kódu.
	Odporúčame, aby ste sa pozreli prv na vzorovú hlavičku pre súbory, ktorá je 
	dodávaná s programom Umbrello. V nej môžete vidieť, ako je možné pomocou
	premenných vložiť aktuálny dátum alebo meno.
	</para>
</sect4>

<sect4>
	<title>Pravidlá pre prepísanie</title>
	
	<para> 
	Tieto parametre určujú, čo má Umbrello 1.1 robiť, ak chce zapísať súbory počas
	generovania zdrojového kódu a cieľový priečinok už existuje. Dokáže súbory
	<emphasis>nezmeniť</emphasis>. Môžeme si vybrať medzi možnosťami
	<quote>Prepísať</quote>, <quote>Opýtať sa</quote> a <quote>Použiť iný názov
	súboru</quote>. Ak prikážeme, aby Umbrello našiel iný názov súboru, priloží 
	Umbrello príponu k existujúcemu názvu súboru.
	</para>
</sect4>

<sect4>
	<title>Jazyk</title>
	
	<para> Umbrello použije pre generovanie zdrojového kódu práve aktívny jazyk. V 
	každom prípade si môžeme v Asistentovi pre generovanie zdrojového kódu vybrať
	iný jazyk.
	</para>
</sect4>

</sect3><!--generation-options--> 

<sect3 id="generation-wizard-generation">

<title>Generovanie zdrojového kódu</title>

<para>
Tretí a posledný krok asistenta zobrazí status samotného generovania zdrojového
kódu. Teraz stlačíme tlačidlo Generovať, aby sa príslušné súbory pre
jednotlivé triedy vytvorili.
</para>

<para>
Musíme si uvedomiť, že nastavené parametre platia len pre aktuálne generovanie
zdrojového kódu. Pri ďalšom vyvolaní asistenta musíme všetky parametre, ako aj
priečinok pre hlavičkové súbory a nastavenie o prepísaní nastaviť znova. Dlhodobé
nastavenie parametrov môžeme vykonať prostredníctvom sekcie
<guilabel>Generovanie zdrojového kódu</guilabel> v nastaveniach Umbrello
v menu <menuchoice><guimenu>Nastavenia</guimenu><guimenuitem>Nastaviť
Umbrello... </guimenuitem></menuchoice>.
</para>

<para>
Ak sú štandardné nastavenia pre generovanie zdrojového kódu správne, môžeme
generovanie spustiť priamo bez asistenta. Robí sa to pomocou položky
<guimenuitem>Generovať všetok zdrojový kód</guimenuitem> z menu Kód. Tým sa
vygeneruje zdrojový kód pre všetky triedy modelu pomocou aktuálnych nastavení,
ako sú výstupný priečinok a nastavenia pre prepísanie. Preto treba túto voľbu
používať opatrne.
</para>

</sect3>

</sect2><!--generate-code-->
</sect1> <!--code-generation-->

<sect1 id="code-import">

<title>Import zdrojového kódu</title>

<para>
Umbrello dokáže načítať zdrojový text už existujúceho projektu pre vytvorenie
systémového modelu. Umbrello 1.1 dokáže načítavať zdrojový kód v jazyku C++,
ďalšie jazyky budú nasledovať v neskorších verziách.
</para>

<para>
Aby bolo možné triedy importovať do aktuálneho modelu, musíme zvoliť položku
<guimenuitem>Importovať triedy...</guimenuitem> z menu
<guimenu>Kód</guimenu>.
V dialógu, ktorý sa objaví, si musíme vybrať súbory, ktoré obsahujú deklarácie
tried jazyka C++ a potvrdiť stlačením OK. Triedy sa importujú a budú vložené do
stromu modelu. Pripomíname, že Umbrello pri načítavaní nevytvára diagramy, len
načíta triedy. Tieto môžeme potom použiť pri už existujúcich diagramoch.
</para>

<para>
<screenshot>
	<screeninfo>Import zdrojového kódu</screeninfo>
	<mediaobject>
		<imageobject>
			<imagedata fileref="pics/code-import.png" format="PNG"/>
		</imageobject>
		<textobject>
			<phrase>Dialóg pre import zdrojového kódu v
			Umbrello</phrase>
		</textobject>
		<caption>
			<para>Dialóg pre import zdrojového kódu v
			Umbrello</para>
		</caption>
	</mediaobject>
</screenshot>
</para>

</sect1>
</chapter>
<!--code-import-generation-->
