VŠB - Technická univerzita Ostrava Fakulta elektrotechniky a informatiky BAKALÁŘSKÁ PRÁCE Petr Kopka

Rozměr: px
Začít zobrazení ze stránky:

Download "VŠB - Technická univerzita Ostrava Fakulta elektrotechniky a informatiky BAKALÁŘSKÁ PRÁCE. 2005 Petr Kopka"

Transkript

1 VŠB - Technická univerzita Ostrava Fakulta elektrotechniky a informatiky BAKALÁŘSKÁ PRÁCE 2005 Petr Kopka

2 VŠB - Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky Podpora výuky a tvorby ER diagramu ve výukovém systému Barborka 2005 Petr Kopka

3 Prohlášení Prohlašuji, že jsem tuto bakalářskou práci vypracoval samostatně. Uvedl jsem všechny literární prameny a publikace, ze kterých jsem čerpal. V Ostravě dne 4. května Petr Kopka 2

4 Poděkování Děkuji především svému vedoucímu bakalářské práce za jeho cenné rady a připomínky. Mé díky patří také učitelům a doktorandům, kteří mi poradili a zapojili se do řešení tohoto projektu. V poslední řadě, avšak ne méně, chci poděkovat svým nejbližším a všem přátelům, kteří měli se mnou trpělivost a vyjádřili mi neocenitelnou podporu. Díky! 3

5 Abstrakt Tým zaměstnanců a studentů Katedry informatiky Fakulty elektrotechniky a informatiky VŠB TUO vytváří výukový systém Barborka. Tématem této bakalářské práce je přispět k rozšíření Barborky o výukový a testovací program entitně-relačních diagramů. Tento program bude možno použít rovněž mimo systém Barborka. Klíčová slova applet, e-learning, entitně-relační diagram, java, LMS, objektově-orientované programování, XML Abstract The team of lecturers and students develope the learning system called Barborka at the Department of Computer Science, Faculty of Electrical Engineering and Computer Science at VŠB Technical Univerzity of Ostrava. This bachelor thesis extends Barborka of learning and testing programme of entity-relation diagram. It will be able to use this programme also out of Barborka system. Keywords applet, e-learning, entity-relation diagram, java, LMS, object-oriented programming, XML 4

6 Obsah 1. Úvod Struktura práce 8 2. E-learning Formy výuky Co je e-learning? LMS Použité technologie Applet Formát XML Co je XML? Základní princip XML XML v editoru ER diagramů Podrobný popis struktury XML-strom Entitně-relační diagram Co je entitně-relační diagram? Příklad ER diagramu ER diagram pro výukový systém Barborka Editor entitně-relačních diagramů Rozbor řešení Varianty editoru ER diagramů Pohyb a umísťování komponent v hlavním panelu editoru Moduly editoru Popis implementace Třídy Třída ERDApplet 23 5

7 Abstraktní třída ERDObject Třída EntityObject Třída RelationshipObject Třída LineObject Třída ERDXMLReader Třída ERDDrawControlsPanel Třídy implementující rozhraní ActionListener Třída ERDStatusPanel Třída ERDDrawPanel Dědičnost mezi třídami Důležité implementační části Spuštění apletu z příkazové řádky Překreslování kreslící plochy Komponenty ER diagramu a jejich vykreslování Přichycení komponent k mřížce Zpracování událostí rozhraní MouseListener Zpracování událostí rozhraní MouseMotionListener Načtení XML dokumentu Odeslání dat Závěr 47 Literatura 48 Přílohy: A. Zdrojové texty 49 B. CD-ROM 50 C. Uživatelská příručka: Postup tvorby ER diagramu 51 6

8 Seznam obrázků 3.1 Hierarchická struktura značek 3.2 XML-strom 4.1 Ukázka ER diagramu z příkladu Varianta ER diagramu pro LMS Barborka 4.3 Výřez kreslící plochy ilustrující zobrazení ER digramu v editoru 5.1 Diagram vztahů mezi třídami 5.2 Polymorfismus tříd 5.3 Diagram dědičnosti 5.4 Výřez části ER diagramu zobrazený s vypnutou technologií antialiasing 5.5 Výřez části ER diagramu zobrazený se zapnutou technologií antialiasing 7

9 1. Úvod Zájem o studium na vysoké škole neustále roste. Ještě nedávno měla například Vysoká škola báňská Technická univerzita Ostrava (dále jen VŠB TUO) zhruba studentů. Nyní tento počet přerostl přes Rok od roku přibývá studentů řádného denního studia a rozšiřují se také řady těch, kteří studují vysokou školu při zaměstnání a tudíž nemohou pravidelně docházet na hodiny. Uspokojit potřeby všech bude vyžadovat neustálé zlepšování efektivity studia použitím nových forem výuky. E-learning je pravděpodobně jednou z velice účinných moderních forem výuky pro obrovské množství studentů. Na VŠB TUO na Katedře informatiky Fakulty elektrotechniky a informatiky vytváří tým zaměstnanců a studentů školy elektronický výukový systém Barborka. Cílem této bakalářské práce (dále jen práce) je navrhnout applet, který bude fungovat jako editor grafických komponent entitně-relačních (dále jen ER) diagramů. Applet bude využíván pro výuku a testování ER diagramů v Barborce a bude navržen s ohledem na možnost pozdějšího rozšíření o další komponenty. 1.1 Struktura práce Práce je rozdělena na šest kapitol. Kromě této první kapitoly jsou v dalších pěti vysvětleny důležité pojmy a technologie a samotný popis editoru ER diagramů. V následující kapitole jsou rozebrány formy výuky. Kapitola vysvětluje pojmy e-learning a LMS a jsou v ní popsány hlavní výhody a nevýhody e- learningu. V další kapitole jsou vysvětleny použité technologie. Nachází se zde odpověď na otázky co je to applet a XML. Část věnována formátu XML popisuje mimo jiné strukturu rozšiřujících značek. Tyto značky tvoří syntaxi použitou v editoru ER diagramů. 8

10 Pojem ER diagram je jedním z nejdůležitějších pojmů celé práce. Jeho slovní definice je ve 4. kapitole a pojem ER diagram je v ní stručně popsán. Pro názornost jsou uvedeny nezbytně nutné příklady a obrázky. Kapitola č. 5 popisuje samotný návrh a vývoj appletu, který je stěžejní částí práce. Nejprve je obecně rozebráno řešení. Jsou zachyceny některé části při řešení návrhu appletu a potom následuje stručný popis všech tříd. Následuje rozbor klíčových částí programu, které je nutno uvést, aby se čtenář dověděl principy skutečně nejzajímavějších pasáží programu. Poslední kapitolou je Závěr, ve kterém je zhodnocen dosažený výsledek při plnění cíle této bakalářské práce. 9

11 2. E-learning O studium na vysokých školách a univerzitách (dále jen školách) v poslední době projevují zájem také lidé, kteří mají ukončené střední vzdělání s maturitou a již pracují. Tito lidé tak mohou využít formu distančního vzdělávání, které nyní nabízí řadu zajímavých studijních programů téměř na všech fakultách každé školy. Zájem o vysokoškolské vzdělání také roste u maturantů, kteří pak studium absolvují prezenčně. Tento zájem obě skupiny nejčastěji odůvodňují vyšším uplatněním na trhu práce s možností lepšího finančního ohodnocení, získáním širšího přehledu plynoucího z univerzitního vzdělání a samozřejmě samotným zájmem o obor. 2.1 Formy výuky Předchozí odstavec se zmiňuje o prezenčním a distančním studiu. Existuje však mnohem více forem studia a proto je vhodné ve zkratce vysvětlit rozdíly. Student prezenčního studia pravidelně dochází na všechny přednášky, semináře a cvičení vedené přednášejícím učitelem a cvičícím. Tyto učiteli vedené hodiny mají své pevně dané místo podle rozvrhu hodin, které stanovuje fakulta, katedra a pedagog. Distanční studium je taková forma studia, kdy student a pedagog nepřichází pravidelně do kontaktu. Jedná se vlastně o vzdělávání na dálku. Na úvodním setkání dostane student od tutora (tutor řídí celý učební proces) příslušné studijní materiály, za které odpovídá jejich autor, zpravidla pedagog. Po obdržení těchto materiálů student pokračuje ve studiu formou samostudia Online výuka (z angl. on line na drátě) je v jistém smyslu další forma výuky, tak jako je forma prezenčního nebo distančního vzdělávání. Je však spíše jakousi podmnožinou distančího studia realizovanou prostřednictvím Internetu. 2.2 Co je e-learning? Trendem ve výuce na školách je v poslední době e-learning. Je to pravděpodobně jedno z nejvhodnějších řešení, jak uspokojit požadavky studentů distanční formy vzdělávání a u těch, kteří studují prezenčně, se studium na škole stane zajímavější a hlavně názornější. Nízká hladina praktické formy výuky je totiž neustálý nedostatek snad všech škol. 10

12 Na Katedře informatiky Fakulty elektrotechniky a informatiky VŠB TUO vytváří tým zaměstnanců a studentů školy výukový systém Barborka, do něhož chce tato práce přispět rozšířením o výukový a testovací program ER diagramů. E-learning je vlastně zkratka anglického electronic learning (doslova elektronická výuka). Někdy je e-learning mylně přirovnáván k online výuce, nicméně jeho záběr je definován šířeji. E-learningem se rozumí jakákoliv forma elektronického studia. Patří do něj jak online výuka tak studium multimediálních CD-ROMů či DVD. Každý systém výuky má svá pro a proti. E-learning je v jistém smyslu individuální systém výuky. Student si sám určuje tempo výuky. Většinou je však na začatku kapitoly uvedena doporučená časová náročnost. Výhodami e-learningu jsou: flexibilita výukových materiálů volba rychlosti výuky probíhajícího kurzu podle vlastních potřeb odstranění nákladů vynaložených na platby vyučujícím odstranění nutnosti být přítomen na půdě školy zrušení nákladů na tisk a tisková média a téměř okamžitá kontrola studentových znalostí díky testovacím programům. Nevýhody snad plynou jen ze sféry informačních technologií (dále jen IT): nutnost vlastnit počítač ověřování si původu zdroje informací jak ze strany studenta tak i učitele zvýšené počáteční náklady na vývoj kurzů a nákup hardware a software. 2.3 LMS Celý systém e-learningu je řízen pomocí LMS (z anglického Learning Management System systém pro řízení výuky). LMS v sobě integruje nástroje pro komunikaci a řízení studia (nástěnka, diskusní fórum, chat, tabule) a schopnosti zpřístupnit studentům materiály ke studiu. 11

13 3. Použité technologie 3.1 Applet Applet je program napsaný v programovacím jazyce Java, který může být vložen do stránky HTML téměř stejným způsobem jako obrázek. Protože je applet napsaný v jazyce Java, má všechny výhody tohoto jazyka, a je samostatný a nezávislý na platformě. Zápornou stránkou appletů je jejich pomalé načítání a proto je vhodné dodržovat následující pokyny: applet navrhnout tak, aby při jeho spouštění v okně prohlížeče bylo stahováno co nejmenší množství dat neumísťovat applet na úvodní stránky, protože je některé prohlížeče nemusí načíst applety spouštět v prohlížeči, který je tzv. java enabled, nebo mít Java Virtual Machine (JVM) Jak již bylo zmíněno, applet je obvykle vkládán do HTML stránek. Na příkladu 3.1 je ukázka výpisu HTML kódu použitého pro Barborku. <APPLET code="erdapplet.class" archive="erd.jar" width=750 height=500> <param name=key value="1a2b"> <param name=mode value="teacher"> <param name=language value="česky"> <param name=http_source value=" <param name=http_target value=" </APPLET> Příklad 3.1: Ukázka HTML kódu Kód obsahuje několik důležitých značek. Jejich vysvětlení je shrnuto v následujících bodech: CODE obsahuje název souboru s příponou class ARCHIVE obsahuje název archivu s appletem WIDTH a HEIGHT definuje šířku a výšku appletu 12

14 PARAM definuje parametry appletu o KEY obsahuje hodnotu jednoduchého identifikačního klíče o MODE a LANGUAGE určuje modul a jazyk appletu při spuštění o HTTP_SOURCE obsahuje cestu k PHP souboru se vstupními daty ve formátu XML o HTTP_TARGET obsahuje cestu k souboru PHP k odeslání dat 3.2 Formát XML Výsledný ER diagram je vlastně jakýsi soubor entit, vztahů a hran. Pro jejich uložení nebo naopak načtení do appletu je zvolen formát XML Co je XML? Ve své podstatě je XML univerzální formát pro tvorbu, správu a výměnu dokumentů. V těchto dokumentech umožňuje mít informace inteligentně strukturované a to práci s nimi výrazně usnadňuje. XML je zkratka anglického extensible Mark-up Language, což znamená rozšířitelný značkovací jazyk. Značkování znamená označení některých údajů tak, abychom jim přiřadili určitý význam. Značkováním v elektronickém dokumentu se rozumí kód, uložený spolu s textem dokumentu, který v sobě nese informace potřebné pro elektronické zpracování. Značkovací jazyk pak v počítačové terminologii znamená soubor pravidel ohledně tohoto kódu neboli značek: jak se budou tyto značky odlišovat od ostatního textu, co bude ta která značka znamenat, v jakých vzájemných vztazích mají být jednotlivé elementy (části textu vymezené značkami) použity a podobně. A konečně slovo rozšiřitelný znamená možnost definovat si vlastní značky. Využití XML je možné snad ve všech oblastech IT. XML je prostě nejrobustnější, nejspolehlivější a nejflexibilnější syntaxe pro dokumenty, jaká kdy byla vyvinuta Základní princip XML Základním principem XML je jeho vysoký informační obsah. Pomocí XML značek se označuje v dokumentu význam jednotlivých částí textu, proto jsou takové dokumenty informačně bohatší. Díky skutečnosti, že formát XML je založen na obyčejném textu, jsou i jeho zdrojové texty snadno 13

15 čitelné. Navíc lze takový soubor otevřít v libovolném textovém editoru a ručně jej upravit. 3.3 XML v editoru ER diagramů V příloze A.1 je ukázka kopletního výpisu zdrojového textu jednoho z již vytvořených XML souborů v appletu této práce. Výpis je kompletní zdrojový text, tak jak byl vygenerován appletem a uložen v souboru schema.xml. Lze jej spustit v internetovém prohlížeči nebo si jej prohlédnout v libovolném textovém editoru Podrobný popis struktury Pro přehlednost struktury souboru schema.xml je na obrázku 3.1 znázorněna hierarchie všech značek tak, jak byla navržena pro editor ER diagramů. Není to výpis souboru! XML soubor začíná hlavní značkou, tzv. kořenový element. Ještě před ní je uvedena verze XML a typ kódování. V souboru schema.xml, jehož výpis je v příloze A.2, je hlavní značkou značka graph structure. Poté vždy následují další vnořené značky a v nich další. Vždy však přesně podle pravidel hierarchie z obrázku 5.1. Ve znače graph structure jsou vnořeny tři nové značky version, general a objects. Značka version slouží k identifikaci verze ER diagramu nikoliv pro verzi XML dokumentu. Značka general obsahuje v sobě další značky, které jdoucí po sobě znamenají název diagramu scheme name, jméno autora scheme author, popis zadání scheme description, vývojové poznámky scheme notes, jazyk diagramu language, datum vytvoření created a datum uložení updated, měřítko zoom a velikost rastru row distance. Značka objects je bohatě strukturovaná jak do hloubky tak do šířky. Nejprve je v ní značka entities, potom edges a nakonec names. Značka entities, která tvoří seznam objektů (entit a vztahů), může obsahovat několik značek entity. Každá značka entity pak obsahuje značky entity id pro jednoznačnou identifikaci objektu, entity name pro jméno objektu, entity type pro jeden ze dvou druhů typů objektů (entita nebo vztah) a entity x a entity y pro souřadnice objektu. 14

16 Značka edges může obsahovat několik značek edge, protože tvoří seznam hran. Každá značka edge pak obsahuje značky edge name pro jméno hrany, line type a line size pro typ a tloušťku čáry tvořící hranu a line color pro barvu hrany. Poslední značkou je nodes, která v sobě obsahuje vždy dvě značky node tvořící oba konce hrany. Ve značkách node jsou ještě značky node name pro název objektu, který je priřazen koncovému uzlu hrany ER diagramu, node type pro jeden ze čtyř typů uzlů (viz. tabulka 5.1) a node size pro velikost uzlu. A konečně značka names v sobě může obsahovat několik značek name pro jména, která budou v seznamu navíc. <?xml version="1.0" encoding="iso "?> <graph_structure> <version> </version> <general> <scheme_name> </scheme_name> <scheme_author> </scheme_author> <scheme_description> </scheme_description> <scheme_note> </scheme_note> <language> </language> <created> </created> <updated> </updated> <zoom> </zoom> <row_distance> </row_distance> </general> <objects> <entities> <entity> <entity_id> </entity_id> <entity_name> </entity_name> <entity_type> </entity_type> <entity_x> </entity_x> <entity_y> </entity_y> </entity> </entities> <edges> <edge> <edge_name> </edge_name> <line_type> </line_type> <line_size> </line_size> <line_color> </line_color> <nodes> <node> <node_name> </node_name> <node_type> </node_type> <node_size> </node_size> </node> </nodes> </edge> </edges> <names> <name> </name> </names> </objects> </graph_structure> Obrázek 3.1: Hierarchická struktura značek 15

17 3.3.2 XML-strom Dokumenty XML mají stromovou strukturu. To je již zřejmé z předchozí kapitoly a aby tento princip byl pochopen ještě lépe, je na obrázku 3.2 strom dokumentu XML. Tento vztah aplikovaný na výpis kódu z obrázku 3.1 představuje pro každou značku jeden šedý obdélník a pro každou značku, která se může vyskytovat vícekrát, černý obdélník. graph structure version general objects scheme name scheme author scheme description scheme note language created updated zoom row entities edges names entity edge name entity id entity name entity type entity x entity y edge name line type line size line color nodes node node name node type node size Obrázek 3.2: XML-strom 16

18 4. Entitně-relační diagram 4.1 Co je entitně-relační diagram? K vysvětlení, co je to entitně-relační diagram, je třeba nejprve vysvětlit aspoň tyto pojmy: entita, atribut, entitní typ a vztah. Entita je libovolná existující osoba, zvíře, věc nebo jev (obecně objekt) reálného světa rozlišitelná od ostatních entit a existující nezávisle na nich. Atribut je charakteristika, vlastnost entity, údaj o objektu. Typ entity je název pro množinu objektů stejného typu, charakterizovaných názvem typu a strukturou jejich atributů. Vztah je jev mezi entitami, který nás zajímá a chceme jej také evidovat. Při realizaci informačního systému (dále jen IS) je vhodné nejprve vytvořit konceptuální schéma. Nejčastěji se pro záznam struktury databáze na konceptuální úrovni používá Chenův E-R model, používající kombinace textových formálních zápisů, grafického zobrazení typů entit, atributů a vztahů mezi entitami i doplňujících textových informací. Toto grafické zobrazení konceptuálního schématu zobrazuje objekty a vztahy mezi nimi formou grafu. Při tvorbě takového grafu je vhodné dodržovat tato pravidla: entitní typ je tvořen obdélníkem atribut entitního typu je tvořen oválem, ten je s entitním typem spojen hranou a je-li atribut klíčový, potom je text atributu podtržen vztah mezi entitními typy je tvořen kosočtvercem a je s odpovídajícími entitními typy spojen hranami kardinalita vztahu se dá znázornit vypsáním nebo vykreslením povinnost členství ve vztahu se zaznamená plným kolečkem na straně příslušného entitního typu, nepovinnost kolečkem prázdným Příklad ER diagramu Příklad 4.1: Mějme tyto dvě entity: Učitel (ID_uč, jméno,...), Předmět (ID_př, název,...) a jeden vztah mezi nimi: UČÍ (Učitel, Předmět). ER diagram bude vypadat jako na obrázku

19 ID_uč jméno... ID_př název... Učitel UČÍ Předmět Obrázek 4.1: Ukázka ER diagramu z příkladu ER diagram pro výukový systém Barborka Pro zobrazení ER diagramu se někdy používá varianta bez atributů. Někdy jsou i kosočtverce znázorňující vztahy mezi entitními typy nahrazeny pouze názvem vztahu, který se píše na hranu spojující entitní typy. Avšak pro výukový systém Barborka bude použita varianta první, tedy varianta bez atributů. Pro grafickou názornost je totiž lepší zachovat kosočtverce reprezentující vztahy mezi entitními typy. Snadněji se budou znázorňovat i n-ární (pro n > 2) vazby mezi entitními typy. Pro lepší představu je na obrázku 4.2 ukázáno, jak bude použitá varianta ER diagramu vypadat, když bude aplikována na příklad 4.1. Obrázek 4.3 pak pro názornou ilustraci zobrazuje výřez sejmuté obrazovky, jak bude tentýž příklad vypadat při zobrazení v editoru. Učitel UČÍ Předmět Obrázek 4.2: Varianta ER diagramu pro LMS Barborka Obrázek 4.3: Výřez kreslící plochy ilustrující zobrazení ER diagramu v editoru 18

20 5. Editor entitně-relačních diagramů Díky potřebě navrhnout editor ER diagramů spadá téma této práce do sféry teorie zpracování dat (dále jen TZD). Nicméně při návrhu je kladen požadavek na objektově-orientovaný přístup k řešení tohoto problému z důvodu pozdějšího rozšíření, který souvisí s implementací v prostředí Javy. Téma tedy samozřejmě zasahuje i do sféry softwarového inženýrství s důrazem na objektově - orientované metody programování. A dalším požadavkem je, aby byl editor navržen jako applet. 5.1 Rozbor řešení Varianty editoru ER diagramů Základem appletu bude kreslící plocha, která bude sloužit jako tabule, na kterou se nechají pomocí šablon kreslit komponenty ER diagramu. Umístění ovládacích prvků je zvoleno do spodní části appletu a zcela dole pod ovládacími prvky poběží v jednom řádku stručná nápověda, která bude uživatele pokud možno co nejstručněji vést tvorbou ER diagramu. Na pravé straně tohoto řádku se navíc budou zobrazovat souřadnice polohy kurzoru myši. Řešení této práce bude mít několik dílčích variant. Applet bude hlavně sloužit jako editor. To znamená, že koncový uživatel (pedagog) bude schopen vytvářet komponenty entitně-relačního diagramu, kterými jsou entity, vazby, prvky znázorňující povinnost členství ve vztahu, prvky znázorňující kardinalitu a nakonec i úsečky (hrany), které graficky spojují jendotlivé komponenty do jednoho diagramu. Z hlediska uživatelsky jednoduchého ovládání postačí ponechat možnost vytvořit pouze komponentu entita a komponentu vazba. Další prvky ER diagramu (jména, hrany, kardinalita a členství ve vztahu) se budou zadávat během vytváření komponent, popřípadě až po vytvoření těchto komponent. Jako daší varianta řešení bude jistá forma testovacího programu studentů předmětu TZD, kteří by si tak ověřili své schopnosti při návrhu entitně-relačních diagramů s okamžitým vyhodnocením jejich řešení. Po spuštění programu si uživatel (student) bude moci zobrazit zadání v jedné ze záložek appletu. Jeho 19

21 úkolem bude vytvořit ER diagram tak, jako by se jej snažil zakreslit na tabuli pomocí nějakých šablon. Jediné omezení bude vyplývat z předem daného seznamu jmen, ze kterého bude vybírat názvy pro pojmenování entit a vazeb. Po sestavení diagramu klepne na tlačítko, kterým odešle své řešení na školní server. V případě neúspěchu řešení by se studentovi mohl zobrazit správný diagram. A pouhé zobrazení diagramu z načtených dat je právě poslední variantou řešení Pohyb a umísťování komponent v hlavním panelu editoru Entitně-relační diagram, jako graficky přesně specifikovaná množina geometrických útvarů, by mohl při sestavování uživatelem respektovat předem stanovený rastr, do něhož by se všechny komponenty diagramu umisťovaly a automaticky přichytily. Přesněji řečeno, pohyb komponenty po ploše během tažení myši se stisknutým tlačítkem bude plynulý, zatímco po uvolnění tlačítka myši se komponenta jakoby přichytí na nejbližší průsečík rastru. Je to analogie k volbě Přichytit objekty k mřížce v aplikaci Word. Podobnou možnost nabízí samozřejmě také všechny druhy ostatních profesionálních grafických aplikací. A tato vlastnost se tedy zjevně hodí i pro tuto práci. Bude tedy vhodné vytvořit rastr, který se nechá zobrazovat čarami s odstínem o trochu světlejším, než je barva pozadí appletu. Přetahování komponent diagramu po ploše se dá rozvinout do dvou rovin. Při návrhu diagramu je třeba povolit přemísťování jedné vybrané komponenty nezávisle na ostatních. To umožní volně kombinovat rozmístění všech komponent a přizbůsobit diagram takovému vzhledu, který bude shodný s představou uživatele. Druhou rovinou pohledu je možnost posouvat celý diagram. V konečné implementaci je však od možnosti posouvat diagramem jako jednou celistvou komponentou upuštěno. Na ploše se totiž během vytváření ER diagramu budou v jistých momentech nacházet i komponenty, které nebudou s ostatními spojené žádnou hranou. Nehledě na to, že nastane i případ, kdy bude na ploše hned několik nedokončených částí diagramu. Posouvání diagramu by se sice dalo zjednodušit tak, že by se nepropojené komponenty či části diagramu posouvaly s ostatními. Editor však má běžet jako applet, na který jsou kladeny rozměrová omezení. Dalším požadavkem je, aby komponenty nikdy úplně neopustily kreslící plochu a aby se nikdy nepřekrývaly. V jistém momentu by však mohlo dojít k situaci, kdy by byly komponenty či části ER diagramu rozmístěny na ploše tak, že by s nimi nakonec nešlo pohnout 20

22 v žádném směru. A proto je možnost posouvat vším, co by mohlo být na ploše, zrušena Moduly editoru Rozbor všech řešení vyústil do konečné podoby appletu, který je navržen modulárně. Aplikační část této práce se tedy sestává ze tří modulů: vytvářecí (teacher) testovací (student) prezentační (preview) Všechny tři moduly mají možnost nastavení jazykové mutace appletu a možnost povolit vyhlazení hran všech grafických prvků na ploše. Vytvářecí modul slouží vyučujícímu, který přednáší nebo vede cvičení předmětu TZD. Vyučující může pracovat s plně funkčním modulem. Po spuštění appletu může vytvářet zcela novou úlohu, což zahrnuje: vytváření seznamu jmen, která se mohou přiřadit příslušným komponentám, a jejich zrušení ze seznamu (zbývající jména nepřiřazená žádné komponentě se můžou v seznamu ponechat, aby studenti neměli při testování práci tak snadnou) vytváření komponent entita a vztah propojení odpovídající komponenty hranou nastavení kardinality a členství ve vztahu vytvoření zadání a všech doplňujících informací jako jsou název úlohy, jméno autora, apod. měnit všechna nastavení appletu odeslání ER diagramu spolu se všemi ostatními údaji ve formátu XML Testovací modul je ochuzen o některé body z předchozího seznamu, protože modul budou používat studenti. Ti nebudou moci jakýmkoliv způsobem zasahovat do seznamu jmen a měnit jeho obsah. Seznam jmen se jim totiž po spuštění appletu automaticky naplní ze zadání. Samozřejmě nebudou mít 21

23 možnost měnit zadání a všechny doplňující údaje. Ostatní body z předchozího seznamu zůstávají platné. Prezentační modul slouží pouze pro zobrazení ER diagramu. Po spuštění appletu se zobrazí ER digram na základě dat získaných ze souboru XML. V tomto režimu není možné modifikovat vlastnosti zobrazeného ER diagramu ani doplňující informace k němu příslušející. 5.2 Popis implementace Tato kapitola stručně popisuje implementaci práce v programovacím jazyce Java. Další kapitola se pak bude věnovat podrobnějšímu popisu implementace vybraných části celého programu Třídy Java je objektově-orientovaný programovací jazyk. Mezi hlavní rysy objektově-orientovaného programování patří dědičnost, zapouzdřenost a polymorfismus. Zdrojový kód napsaný v Javě po svém přeložení vytvoří třídu nebo několik tříd a všechny objekty, které se vytvářejí po spuštění přeloženého kódu, jsou instancí tříd. Všechny pak mají jednu společnou supertřídu Object, ze které dědí. Pro tento applet bylo nutné vytvořit hned několik nových tříd, které jsou podrobně popsány v následujících kapitolách. Třídy vytvářené při objektově-orientovaném modelování, které předchází objektově-orientovanému programování, se někdy nazývají též objektovými třídami. Mezi těmito třídami se vyskytují tyto vazby: agregace jedna třída je částí druhé třídy; značí se prázdým kosočtvercem umístěným na agregační vazbě kompozice (neboli silná agregace) jedna třída je vytvářena druhou třídou a bez této druhé třídy nemá existence první třídy smysl; značí se plným kosočtvercem umístěným na agregační vazbě asociace vztah mezi jednou či více třídami, které jsou abstrakcí množiny spojení mezi instancemi (objekty) těchto tříd; značí se plným trojúhelníkem a jménem v aktivní (slovesné) formě, které určuje směr generalizace/specializace generalizace je vztah mezi obecnou objektovou třídou (nazývanou super class nebo parent) a jejími konkrétními potomky (subclass nebo child), které dědí ze svého 22

24 předka všechny vlastnosti; značí se prázdným trojúhelníkem, který určuje směr k rodičovské třídě specializace je opačný vztah Po objektově-orientovaném modelování editoru ER diagramů této práce vznikl diagram vztahů mezi třídami, který je na obrázku 5.1. ERDApplet ERDStatusPanel 1 ERDDrawControlsPanel ERDXMLReader 1 1 * * 1 LineObject 1 ERDDrawPanel 1 * ERDObject * {Abstract} EntityObject RelationshipObject Obrázek 5.1: Diagram vztahů mezi třídami Třída ERDApplet V souboru ERDApplet.java je hlavní třída ERDApplet, která je potomkem třídy JApplet. Obsahuje dvě privátní proměnné: drawcontrolspanel je typu ERDDrawControlsPanel (podrobněji v kap ) a statuspanel je typu ERDStatusPanel (podrobněji v kap ). Ostatní proměnné typu String jsou veřejné a slouží k uchování hodnot parametrů načtených z HTML souboru. Pří inicializaci appletu se provede metoda init(). Její úlohou je načíst si z HTML souboru všechny potřebné parametry. Do proměnné key se načte 23

25 parametr obsahující klíč, který bude sloužit jednoduché identifikaci např. studenta nebo vyučujícího. V proměnné mode bude důležitý parametr, jaký modul se vlastně spustí. Vytvářecí modul bude identifikován řetězcem teacher, testovací modul řetězcem student a prezentační modul řetězcem preview. V proměnné language bude uložena hodnota parametru, podle něhož se applet spustí buď v české jazykové mutaci (řetězec obsahuje hodnotu Česky) nebo anglické (English). Další parametry se načtou do proměnných URLin a URLout. V URLin bude cesta k XML souboru, ze kterého se načte ER diagram. V URLout bude cesta k PHP souboru, na který se pošle výsledný diagram i s klíčem. Posledním úkolem metody init() je vytvořit správce rozvržení BorderLayout. Doprostřed appletu se umístí nová instance třídy ERDDrawControlsPanel a do spodní částí se vloží instance třídy ERDStatusPanel Abstraktní třída ERDObjekt Pro možnost pozdějšího rozšíření appletu o další objekty je vytvořena abstraktní třída ERDObject. Tato třída dědí ze třídy Object a obsahuje důležité argumenty a metody, které budou společné pro všechny další podtřídy, které z ní budou dědit. Většina argumentů této abstraktní třídy jsou chráněné proměnné, kterou jsou dále přístupné už jen ze tříd, které rozšiřují její implementaci. Argument name je typu String a bude obsahovat jméno instance, která bude vystihovat, jakou roli bude instance třídy ERDObject hrát v ER diagramu. Další dva argumenty centerpos a oldcenterpos typu Point2D.Float určují aktuální a poslední pozici komponenty na ploše, přesněji řečeno jsou to souřadnice středu komponenty. Argument shape typu Shape bude uchovávat tvar komponenty. Třída dále obsahuje hodnoty barev typu Color. Argument fillcolor je barva výplně komponenty. Barva obrysu vybrané komponenty je v argumentu outlncolor. V této třídě je jediný privátní argument id. Je velice důležitý. Uchovává jedinečnou hodnotu instance objektu, který představuje komponentu. Posledním argumentem této třídy je proměnná font. Definuje tloušťku a velikost písma názvů komponent tak, aby byly optimální pro zobrazení na většině monitorů. Nyní následuje popis metod třídy ERDObject. První metodou je konstruktor ERDObject(), tedy konstruktor bez parametrů. V této metodě je volána metoda init(), která vytvoří nové objekty centerpos a OldCenterPos. Objekty je třeba vytvořit, aby se mohly do nich pomocí dalších metod ukládat hodnoty souřadnic. Metodou setoutlncolor(color c) se nastavuje hodnota barvy obrysu 24

26 komponenty a metodou getoutlncolor(), která je typu Color, ja získána zpět. Podobný princip se uplatňuje při nastavení a získání hodnot name, centerpos, oldcenterpos a id. U hodnoty shape je princip také podobný, ale metody jsou deklarovány jako abstract. Jejich implementace je definována ve třídách EntityObject a RelationshipObject. Takovéto technice implementace se říká polymorfismus. Některé objekty mají k dispozici totožná rozhraní realizována prostřednictvím operací, ale metody, které se skrývají za těmito operacemi, jsou rozdílné. Třídy, které mají tyto virtuální operace, se nazývají polymorfní. Třídy EntityObject a RelationshipObject implementují metodu setshape(), kterou se nastaví požadovaný tvar a umístění komponenty na ploše, jinak. Ve třídě EntityObject tato metoda pouze vytvoří instanci třídy Rectangle2D a tím vznikne obdélníkový tvar komponenty entita. Ve třídě RelatioshipObject tato metoda nejprve vytvoří instanci třídy GeneralPath a pomocí jejich metod vytvoří po směru hodinových ručiček tvar kosočtverce odpovídající tvaru komponenty vztah. Výsledný tvar je pak přiřazen do proměnné shape. Metoda paint(graphics2d g2d) pošle svůj parametr dále abstraktní metodě draw(graphics2d g2d), která je rovněž implementována ve třídách, které rozšiřují třídu ERDObject. Na obrázku 6.1 je znázorněn polymorfismus, který je ve třídách EntityObject a RelationshipObject. Metody setshape(), getshape() a draw() jsou tedy ve třídě ERDObject pouze metodami abstraktními Třída EntityObject Třída EntityObject rozšiřuje abstraktní třídu ERDObject o tři privátní atributy. Proměnná startpos typu Point2D.Float bude uchovávat souřadnice levého horního rohu obdélníka, který bude tvořit obrys komponenty entita. V proměnné entitywidth pak bude uchována hodnota šířky obdélníka a do proměnné namewidth se uloží vypočítaná délka textu. První metodou této třídy je konstruktor EntityObject(), který pomocí klíčového slova super zavolá konstruktor z nadtřídy ERDObject. Metoda setshape() uloží do proměnné shape obrys komponenty entita, kterým bude vypočítaný tvar obdélníka. Metoda getshape() typu shape tento obrys vrátí. Metoda draw(graphics2d g2d) překrývá metodu z natřídy ERDObject a stará se o samotné vykreslení komponenty entita na kreslící plochu appletu. Metodou getentitywidth() typu int se získá hodnota atributu entitywidth. 25

27 ERDObject {Abstract} name centerpos oldcenterpos shape fillcolor outlncolor entitywidth namewidth id font init setoutlncolor getoutlncolor setobjectname getobjectname setposition setoldposition getxcenterpos getycenterpos getxoldcenterpos getyoldcenterpos setid getid setshape getshape draw paint startpos EntityObject setshape getshape draw getentitywidth gp RelationshipObject setshape getshape draw Obrázek 5.2: Polymorfismus tříd Třída RelationshipObject Tato třída má podobnou strukturu jako předchozí třída EntityObject. Namísto atributu startpos má však atribut gp typu GeneralPath. Do něj se pak pomocí metody setshape() uloží vypočtený kosočtvercový tvar komponenty vztah Třída LineObject Ve třídě LineObject je několik privátních argumentů a všechny její metody jsou veřejné. Má podobné schéma jako abstraktní třída ERDObject. Představuje hranu mezi objekty, které jsou instancemi tříd EntityObject a RelationshipObject a stará se i o vykreslení tvarů představujících v ER diagramu členství ve vztahu a kardinalitu. Většina atributů a metod je pojmenovaná stejně a proto se nabízí otázka. Proč tato třída taky nerozšiřuje třídu ERDObject? Odpověď je jednoduchá. Třída ERDObject je navržena tak, aby ji mohly rozšiřovat jen ty třídy, jejichž instance budou představovat komponenty jakéhokoliv diagramu. 26

28 Hrana zde totiž není chápána jako komponenta diagramu (více v kapitole 5.1.1), i když by někdo mohl namítat opak. Na tomto místě stojí za zmínku rozebrat konstruktor LineObject (RelationshipObject relationshipobject, EntityObject entityobject). Ten do privátních proměnných entityobject a relationshipobject přiřadí pomocí operátoru this objekty, které jsou v argumentu konstruktoru. Potom zavolá metodu init(), která ze středů obou komponent spočítá počáteční a koncový bod hrany mezi objekty. Důležitou metodou třídy LineObject je metoda updatelineobject(). Díky ní jsou aktualizovány počáteční a koncový bod hrany pokaždé, když se pohne některou ze dvou komponent ER diagramu, které hrana spojuje. Navíc je zde atribut property typu int, ve kterém je uchován typ zakončení hrany na straně entity. Protože v ER diagramu mohou nastat jen čtyři případy zakončení, jsou typy zakončení pro účely implementace očíslovány a v celém zdrojovém kódu je tak každý typ zakončení reprezentován číslem v rozsahu 0 až 3. V tabulce 6.1 je seznam všech čtyř typů zakončení hrany na straně entity a ke každému typu je přiřazena odpovídající hodnota. Typ zakončení hrany na straně objektu entita Hodnota :1, nepovinný ve vztahu 0 :1, povinný ve vztahu 1 :N, nepovinný ve vztahu 2 :N, povinný ve vztahu 3 Tabulka 5.1: Hodnoty typů zakončení hran Třída ERDXMLReader Třída rozšiřuje třídu DefaultHandler a překrývá některé její metody. Instancí této třídy bude objekt, jemuž se jako parametry předají hodnoty verze modulu appletu a adresa XML souboru. Tyto hodnoty se pomocí operátoru this přiřadí 27

29 do privátních argumentů třídy ERDXMLReader. Poté kostruktor zavolá metodu init(), která vytvoří tři nové instance třídy ArrayList, do kterých se budou při zpracování obsahu XML souboru ukládat podle potřeby objekty tvořící komponenty, hrany a jména. Tuto část (metody třídy ERDXMLReader) je vhodné popsat podrobněji, a proto stručný úvod do problematiky zpracování XML souboru pomocí metod této třídy je rozebrán v kapitole Třída ERDDrawControlsPanel Tato třída rozšiřuje třídu JPanel a její kód je součástí souboru ERDApplet.java. Obsahuje spoustu privátních i veřejných atributů. Popsat detailně význam každého je nad rámec této práce. O významu některých z nich se zmiňuje kapitola Za zmínku však zde stojí vysvětlení existence tolika proměnných typu boolean. Tyto proměnné v sobě uchovávají stav, v jakém se editor nachází. Tvorba ER diagramu v tomto editoru zahrnuje několik akcí. Některé z nich jsou tvořeny dalšími dílčími akcemi a aby bylo jasné, která akce již byla provedena a jaká další po ní může následovat, bylo zvoleno, že si informace o nich bude program uchovávat v těchto logických proměnných. Důležitý je konstruktor této třídy. Obsahuje totiž následující parametry: parametru applet typu Japplet je předán samotný applet, parametr statuspanel bude obsahovat instanci třídy ERDStatusPanel a v ostatních parametrech, které jsou typu String, jsou hodnoty představující klíč, modul, jazyk, adresa vstupního XML souboru, adresa výstupního souboru a adresa případných stránek, které nahradí ukončený applet. Tyto parametry jsou dále pomocí operátoru this předány do privátních proměnných. Další úlohou konstruktoru je vytvořit správce rozvržení BorderLayout. To umožní do spodní části vložit ovládací prvky appletu a doprostřed okna appletu (defacto téměř přes celou plochu) vložit panel, do něhož se budou moci vkládat komponenty ER diagramu a vytvářet tak celý diagram. Metoda getdrawpanel() typu Component vytvoří novou instancí třídy ERDDrawPanel a metoda getcontrolspanel() typu JComponent postupně vytvoří všechny ovládací prvky appletu. Základem této metody je objekt typu JTabbedPane, do něhož jsou postupně vloženy záložky Objekt, Jméno, Spojení, Vlastnost spojení, Diagram, Hlavní, Popis, Poznámky, Nastavení a O programu. Do každé z těchto záložek je vložena komponenta typu JPanel a teprve do ní jsou potom vkládány jednotlivé prvky jako tlačítka typu JButton, nápisy typu JLabel a další komponenty Na základě módu, v jakém je applet spuštěn, je 28

30 potom možno obsah některých těchto komponent měnit nebo jsou pouze viditelná, ale měnit jejich obsah je zákázáno Třídy implementující rozhraní ActionListener Každé komponentě typu JButton nebo JComboBox je přiřazena obsluha události, která vytvoří nový objekt, který bude po každém stisknutí tlačítka vykonávat potřebné operace. Každá taková obsluha události je ve zvláštní třídě. Každá taková třída je pro jednoduchost implenetace vždy vnitřní třídou třídy, v níž je komponenta, která právě událost vyvolává. Ve třídě ERDDrawPanel to jsou tyto třídy: NameChooserHandler PropertyChooserHandler AntiAliasButtonHandler LangAppChooserHandler LoadButtonHandler (v konečné verzi je obsluha události vyvolané stiskem tlačítka loadbtn zakázána) SaveButtonHandler a ve třídě ERDDrawControlsPanel to jsou tyto třídy: EntityButtonHandler RelationshipButtonHandler BindButtonHandler UnbindButtonHandler NameButtonHandler AddNameButtonHandler RemoveNameButtonHandler RemoveButtonHandler PropertyButtonHandler Třída ERDStatusPanel Třída ERDStatusPanel je třída, která je potomkem třídy JPanel. Obsahuje dva privátní argumenty statuslabel a coordinateslabel, které jsou typu JLabel. 29

31 Argument statuspanel slouží jako kontextová nápověda. Za běhu programu v něm bude text o tom, co se právě stalo nebo pomoc uživateli, jaký následující krok má udělat. Konstruktor ERDStatusPanel() nastaví správce rozvržení BorderLayout. To umožní na levou část umístit objekt statuslabel a na pravou část umístit objekt coordinateslabel. Metodou updatestatelabel(string statetext) se nastaví textová hodnota objektu statuslabel a metodou updatecoordinateslabel(string coortext) se nastaví textová hodnota objektu coordinateslabel. Poslední metoda getstatelabel() je typu String a vrací textovou hodnotu objektu statuslabel Třída ERDDrawPanel Tato třída je úplně poslední. Její ulohou je vytvořit objekt, který bude sloužit jako kreslící plocha editoru. Kreslící plochu je možno si představit jako školní tabuli, na kterou se podle nějaké šablony umisťují komponenty, které se potom spojí do výsledného ER diagramu. Třída ERDDrawPanel rozšiřuje třídu Panel a implementuje rozhraní MouseListener a MouseMotionListener. Tato rozhraní obsluhují události vyvolané tlačítkem myši a pohybem myší nad touto komponentou. Konstruktorem ERDDrawPanel() se nastaví barva pozadí kreslící plochy. Poté se nově vytvořenému objektu typu ERDDrawPanel přiřadí posluchači událostí vyvolaných stisknutím tlačítka myši nebo pohybem myši po tomto objektu. Nakonec se ještě přiřadí posluchači událostí, vyvolaných akcí některých ovládacích prvků editoru. Jak již bylo uvedeno, třída implementuje rozhraní MouseListener a MouseMotionListener. Z tohoto důvodu je nutné implementovat všechny metody těchto rozhraní. Někdy se však může tato nutnost zdát nabytečnou prací a proto se doporučuje použítí adaptérů MouseAdapter a MouseMotionAdapter. V takovém případě pak stačí implementovat pouze ty metody, které jsou potřebné. Tento applet ale slouží jako plně funkční editor a pro takový případ je vhodné implementovat většinu metod. Při tvorbě ER diagramu se totiž bude ze všeho nejvíce používat právě myš. 30

32 Dědičnost mezi třídami Na obrázku 5.3 je znázorněn diagram dědičnosti. Pro přehlednost nejsou uvedeny atributy ani metody žádné třídy. Názorně je zachycena hierarchie všech tříd, čímž vyniknou vztahy mezi nimi, tedy kdo je rodič a kdo je potomek. Všechny třídy implementující rozhraní ActionListener dědí rovnou ze třídy Object. Pro přehlednost jsou vynechány. Object ERDObject LineObject Component DefaultHandler EntityObject RelationshipObject Container ERDXMLReader Panel JComponent Applet ERDDrawPanel JPanel JApplet ERDDrawControlsPanel ERDStatusPanel ERDApplet Obrázek 5.3: Diagram dědičnosti 31

33 5.2.2 Důležité implementační části Následující kapitoly se zabývají některými částmi kódu, které je vhodné pro pochopení implementace podrobněji rozebrat. Nicméně nejedná se o kompletní programátorskou příručku. Tyto kapitoly mohou sloužit jako motivace pro psaní vlastních programů. Některé kapitoly také obsahují krátké úryvky kódu ze samotného zdrojového textu programu. Text kódu je od ostatního textu odlišen neproporcionálním písmem a pro ještě větší přehlednost je vždy na samostatném odstavci. Ukázky kódu jsou však omezeny na množství nezbytně nutné. Popisovat každý řádek kódu by bylo nad rámec této práce Spuštění appletu z příkazové řádky Občas je zapotřebí, aby program napsaný jako applet nemusel být umístěn do žádné webové stránky a byl spustitelný nejen z webového prohlížeče, tzn. aby byl spustitelný jako aplikace třeba z příkazové řádky. Někdy je také poptávka po operacích, které aplikace dovede a appletu jsou přitom zakázány. K vytvoření takového appletu, který může být spuštěn z příkazové řádky, stačí v appletu uvést metodu main(), která vytvoří instanci appletu uvnitř komponenty JFrame. Tato metoda je opravdu jediný prvek, který je přidán do zdrojového kódu appletu. Zbytek kódu zůstává nezměněn. Applet je vytvořen a přidán do komponenty, která je instancí třídy JFrame, tak, aby mohl být zobrazen. V metodě main() je zapotřebí applet inicializovat a spustit. K tomu slouží nasledující dva řádky: applet.init(); applet.start(); Tyto operace je nutné uvést, protože při spuštění z prohlížeče je sice provede sám prohlížeč, ale při spuštění z příkazové řádky tomu tak není a proto je zapotřebí je provést explicitně. Samozřejmě že tento postup neplní zcela chování prohlížeče. Ten totiž při ukončení appletu ještě navíc provede metody stop() a destroy(), ale pro většinu případů je to přijatelné. Za povšimnutí také stojí volání metody show() komponenty JFrame: frame.show(); Bez této metody by se na obrazovce nezobrazilo vůbec nic Překreslování kreslící plochy Applety velmi často obsahují grafiku, která je vytvářena voláním metod z třídy Graphics. Tyto metody se starají o vykreslení různých tvarů. Při větším množství volání takovýchto metod může docházet k nepříjemnému blikání na 32

34 obrazovce zejména na pomalejších počítačích. Applet této práce je tím příkladem. Při jakékoliv změně polohy objektů ER diagramu na kreslící ploše appletu (pomocí myši) totiž dochází opakovaně k překreslování celého obrazu, který tvoří kreslící plochu. Obraz totiž tvoří nejen samotné objekty, ale je tvořen i mřížkou, ke které se objekty vždy přichytí po uvolnění tlačítka myši. Takové množství různých tvarů, které je třeba vykreslit, zabere spoustu výpočetního času počítače a zároveň zkrátí dobu, po kterou je kreslící plocha zobrazena. Ve výsledku tak dojde spíš k problikávání obrazu, namísto zdánlivě plynulého pohybu objektů. Proč k tomu vlastně dochází? Vykreslení všech tvarů obrazu tvořícího kreslící plochu se obecně provádí v metodě paint(graphics g) třídy Panel. Tato metoda provede vykreslení všech tvarů postupně, což na pomalejších počítačích při velkém množství tvarů vyvolá dojem, jakoby se tvary vykreslovaly jeden za druhým. A po dalším výpočtu obrazu se celý proces opakuje. Dochází tak k nepříjemnému jevu blikání obrazu. Tento jev se však dá částečně odstranit a důsledkem je pak dojem plynulého pohybu komponent. Jak tedy postupovat? Co kdyby se obraz nejprve vykreslil někde v paměti počítače a potom se výsledek zobrazil na obrazovce. Této technice se říká bufrování obrazu. Obraz se nejprve vypočítá v mezipaměti (bufferu) a potom se provede jeho zobrazení (vyprázdnění bufferu). V následujících řádcích je uveden rozbor jedné takové techniky. Popis je vždy dokumentován i odpovídající částí kódu programu. Jak již bylo uvedeno výše, k vykreslení obsahu každé komponenty je vždy volána metoda paint(graphics g) a proto je nutné tuto metodu vhodně implementovat tak, aby splňovala požadavek neblikajícího obrazu. Pro tento účel je třeba vytvořit proměnnou buffer typu Image. Do této proměnné se pak přiřadí objekt typu Image pomocí metody createimage(int width, int height), která vytvoří obraz uvnitř paměti počítače, avšak tento obraz zatím není vidět na obrazovce. Jeho rozměry, které mají šířku i výšku shodnou s velikostí kreslící plochy, jsou metodě createimage() předány právě pomocí jejich parametrů width a height: if (buffer == null) buffer = createimage(getsize().width, getsize().height); Poté je volána vlastní metoda nazvaná clear(). Tato metoda nevrací nic a na základě získaného grafického kontextu pro kreslení obrazu v paměti počítače provede vyčištění určité oblasti pomocí metody clearrect(int x, int y, int width, int height). Metoda clearrect() vyplní specifikovanou oblast (kreslící plochu) aktuální barvou pozadí: 33

35 Graphics g = buffer.getgraphics(); g.clearrect(0,0,getsize().width,getsize().height); Vyčištění plochy je velmi důležité. Kdyby k vyčištění nedocházelo, zůstaly by na kreslící ploše při pohybu komponent také jejich předchozí kresby a za krátkou dobu by obrazovka byla zaplněna kromě ER diagramu také nepřehlednou změtí různých tvarů. Když už je kreslící plocha čístá je opět možno na ni vykreslit všechny grafické tvary. K tomu je volána vlastní navržená metoda draw(). Tato metoda se stará o to, co je z hlediska uživatele nejzajímavější. Vykresluje totiž mřížku a celý ER diagram. Podrobněji o tom v kapitole Je třeba však pamatovat na to, že vykreslení se stále děje v paměti počítače a uživatel v této fázi zatím vidí ER diagram v takovém stavu, v jakém byl, než pohnul komponentou nebo změnil vlastnosti diagramu, popř. nějaké nastavení appletu. Prodleva je však řádově v setinách i tisícinách sekund (podle rychlosti počítače), což je přijatelné více než již zmiňované nepříjemné blikání. Nyní je již obrázek vykreslen v paměti počítače a je třeba jej konečně zobrazit na obrazovce. K tomu slouží metoda drawimage(image img, int x, int y, ImageObserver observer). Tato metoda vykreslí určitý obrázek, jakmile je dostupný. Obrázek je vykreslen z levého horního rohu v souřadnících aktuálního grafického kontextu. Tato metoda vrací logickou hodnotu boolean. V případě, že je volána v momentě, kdy obrázek v paměti ještě není zcela vykreslen, vrací hodnotu false. Jakmile je obrázek dostupný (vykreslení grafických tvarů je dokončeno), proces kreslící obrázek to oznámí pozorovateli tedy kreslícímu panelu a na obrazovce uživatele se bez jediného bliknutí objeví ER diagram v takové podobě, jak si to přál uživatel, když provedl posunutí komponentou nebo změnil nějakou jinou vlastnost či nastavení Komponenty ER diagramu a jejich vykreslování Každý ER diagram je tvořen několika grafickými prvky. Pro tyto účely jsou vytvořeny třídy EntityObject, RelationshipObject a LineObject. Nově vytvořené objekty, které jsou instancemi těchto tříd, je třeba udržovat v paměti počítače, nejlépe v nějakém poli. Nejvhodnější se zdá být použití třídy ArrayList. Tato třída je implementací rozhraní List jako pole s proměnnou délkou. Implementuje všechny potřebné operace a přístupy ke všem prvkům. Umožní vytvořit pole z objektů, které jsou instancemi různých tříd. 34

1. Dědičnost a polymorfismus

1. Dědičnost a polymorfismus 1. Dědičnost a polymorfismus Cíl látky Cílem této kapitoly je představit klíčové pojmy dědičnosti a polymorfismu. Předtím však je nutné se seznámit se základními pojmy zobecnění neboli generalizace. Komentář

Více

2 Grafický výstup s využitím knihovny

2 Grafický výstup s využitím knihovny 2 Grafický výstup s využitím knihovny Studijní cíl Tento blok je věnován základním principům při vytváření grafického výstupu pomocí standardních metod, které poskytuje grafické rozhraní. V textu budou

Více

11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9 Obsah přednášky 9 Základy programování (IZAPR, IZKPR) Přednáška 9 Základy dědičnosti, přístupová práva Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií

Více

11 Diagram tříd, asociace, dědičnost, abstraktní třídy

11 Diagram tříd, asociace, dědičnost, abstraktní třídy 11 Diagram tříd, asociace, dědičnost, abstraktní třídy Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost diagramům tříd, asociaci,

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího

Více

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Bridge. Známý jako. Účel. Použitelnost. Handle/Body Bridge Bridge Známý jako Handle/Body Účel odděluje abstrakci (rozhraní a jeho sémantiku) od její konkrétní implementace předchází zbytečnému nárůstu počtu tříd při přidávání implementací používá se v době

Více

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox 02. HODINA Obsah: 1. Typy souborů a objektů 2. Ovládací prvky Label a TextBox 3. Základní příkazy a vlastnosti ovládacích prvků 4. Práce s objekty (ovládací prvky a jejich vlastnosti) 2.1 Typy souborů

Více

Tvorba kurzu v LMS Moodle

Tvorba kurzu v LMS Moodle Tvorba kurzu v LMS Moodle Před počátkem práce na tvorbě základního kurzu znovu připomínám, že pro vytvoření kurzu musí být profil uživatele nastaven administrátorem systému minimálně na hodnotu tvůrce

Více

Java aplety. Předávání parametrů z HTML

Java aplety. Předávání parametrů z HTML Java aplety Aplety jsou speciální formou Java aplikací - mohou být spouštěny z prostředí WWW prohlížeče. Aby je prohlížeč spustil, musíme vložit do HTML stránky potřebné příkazy:

Více

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans. 1 Grafické rozhraní Studijní cíl Tento blok je věnován vytváření programů s využitím grafického rozhraní (GUI). Vysvětlen bude základní filozofie pro vytváření aplikací s GUI ve srovnání s konzolovými

Více

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání Čtvrtek 3. listopadu Makra v Excelu Obecná definice makra: Podle definice je makro strukturovanou definicí jedné nebo několika akcí, které chceme, aby MS Excel vykonal jako odezvu na nějakou námi definovanou

Více

43 HTML šablony. Záložka Šablony v systému

43 HTML šablony. Záložka Šablony v systému 43 HTML šablony Modul HTML šablony slouží ke správě šablon pro výstupy z informačního systému modularis ve formátu HTML. Modul umožňuje k šablonám doplňovat patičku, dokumentaci a vázat šablony na konkrétní

Více

Postupy práce se šablonami IS MPP

Postupy práce se šablonami IS MPP Postupy práce se šablonami IS MPP Modul plánování a přezkoumávání, verze 1.20 vypracovala společnost ASD Software, s.r.o. dokument ze dne 27. 3. 2013, verze 1.01 Postupy práce se šablonami IS MPP Modul

Více

xrays optimalizační nástroj

xrays optimalizační nástroj xrays optimalizační nástroj Optimalizační nástroj xoptimizer je součástí webového spedičního systému a využívá mnoho z jeho stavebních bloků. xoptimizer lze nicméně provozovat i samostatně. Cílem tohoto

Více

Úloha 1. Text úlohy. Vyberte jednu z nabízených možností: NEPRAVDA. PRAVDA Úloha 2. Text úlohy

Úloha 1. Text úlohy. Vyberte jednu z nabízených možností: NEPRAVDA. PRAVDA Úloha 2. Text úlohy Úloha 1 Úloha 2 Otázka se týká předchozího kódu. Určete pravdivost následujícího tvrzení: "Pro každý bod vytvoří úsečku mezi ním a středem panelu." Úloha 3 Otázka se týká předchozího kódu. Určete pravdivost

Více

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná. Průběžná klasifikace Nová verze modulu Klasifikace žáků přináší novinky především v práci s průběžnou klasifikací. Pro zadání průběžné klasifikace ve třídě doposud existovaly 3 funkce Průběžná klasifikace,

Více

Zpravodaj. Uživatelská příručka. Verze

Zpravodaj. Uživatelská příručka. Verze Zpravodaj Uživatelská příručka Verze 02.01.02 1. Úvod... 3 2. Jak číst tuto příručku... 4 3. Funkčnost... 5 3.1. Seznam zpráv... 5 4. Ovládání programu... 6 4.1. Hlavní okno serveru... 6 4.2. Seznam zpráv...

Více

INFORMAČNÍ SYSTÉM VIDIUM A VYUŽITÍ MODERNÍCH TECHNOLOGIÍ

INFORMAČNÍ SYSTÉM VIDIUM A VYUŽITÍ MODERNÍCH TECHNOLOGIÍ INFORMAČNÍ SYSTÉM VIDIUM A VYUŽITÍ MODERNÍCH TECHNOLOGIÍ Michal Brožek, Dominik Svěch, Jaroslav Štefaník MEDIUM SOFT a.s., Cihelní 14, 702 00 Ostrava, ČR Abstrakt Neustále rostoucí význam sběru dat, možnost

Více

Aplikace s grafickým uživatelským rozhraním

Aplikace s grafickým uživatelským rozhraním Aplikace s grafickým uživatelským rozhraním doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz 1 Typy aplikací Konzolová

Více

Prostředí Microstationu a jeho nastavení. Nastavení výkresu

Prostředí Microstationu a jeho nastavení. Nastavení výkresu Prostředí Microstationu a jeho nastavení Nastavení výkresu 1 Pracovní plocha, panely nástrojů Seznámení s pracovním prostředím ovlivní pohodlí, rychlost, efektivitu a možná i kvalitu práce v programu Microstation.

Více

Práce s texty, Transformace rastru, Připojení GPS

Práce s texty, Transformace rastru, Připojení GPS Školení programu TopoL xt Práce s texty, Transformace rastru, Připojení GPS Obsah: 1. Uživatelské rozhraní (heslovitě, bylo součástí minulých školení) 2. Nastavení programu (heslovitě, bylo součástí minulých

Více

Možnosti tisku v MarushkaDesignu

Možnosti tisku v MarushkaDesignu 0 Možnosti tisku v MarushkaDesignu OBSAH 1 CÍL PŘÍKLADU...2 2 PRÁCE S PŘÍKLADEM...2 3 UKÁZKA DIALOGOVÉHO OKNA...3 4 STRUČNÝ POPIS PŘÍKLADU V MARUSHKADESIGNU...5-1 - 1 Cíl příkladu V tomto příkladu si ukážeme

Více

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika

Více

2. přednáška z předmětu GIS1 Data a datové modely

2. přednáška z předmětu GIS1 Data a datové modely 2. přednáška z předmětu GIS1 Data a datové modely Vyučující: Ing. Jan Pacina, Ph.D. e-mail: jan.pacina@ujep.cz Pro přednášku byly použity texty a obrázky z www.gis.zcu.cz Předmět KMA/UGI, autor Ing. K.

Více

Budovy a místnosti. 1. Spuštění modulu Budovy a místnosti

Budovy a místnosti. 1. Spuštění modulu Budovy a místnosti Budovy a místnosti Tento modul představuje jednoduchou prohlížečku pasportizace budov a místností VUT. Obsahuje detailní přehled všech budov a místností včetně fotografií, výkresů objektů, leteckých snímků

Více

OOT Objektově orientované technologie

OOT Objektově orientované technologie OOT Objektově orientované technologie Logická struktura systému (Diagram tříd) Daniela Szturcová Institut geoinformatiky, HGF Osnova Třídy Statický pohled na systém Atributy a operace, řízení přístupu

Více

2 PŘÍKLAD IMPORTU ZATÍŽENÍ Z XML

2 PŘÍKLAD IMPORTU ZATÍŽENÍ Z XML ROZHRANÍ ESA XML Ing. Richard Vondráček SCIA CZ, s. r. o., Thákurova 3, 160 00 Praha 6 www.scia.cz 1 OTEVŘENÝ FORMÁT Jednou z mnoha užitečných vlastností programu ESA PT je podpora otevřeného rozhraní

Více

Reliance 3 design OBSAH

Reliance 3 design OBSAH Reliance 3 design Obsah OBSAH 1. První kroky... 3 1.1 Úvod... 3 1.2 Založení nového projektu... 4 1.3 Tvorba projektu... 6 1.3.1 Správce stanic definice stanic, proměnných, stavových hlášení a komunikačních

Více

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý Uživatelský manuál Aplikace GraphViewer Vytvořil: Viktor Dlouhý Obsah 1. Obecně... 3 2. Co aplikace umí... 3 3. Struktura aplikace... 4 4. Mobilní verze aplikace... 5 5. Vytvoření projektu... 6 6. Části

Více

umenugr JEDNOTKA PRO VYTVÁŘENÍ UŽIVATELSKÝCH GRAFICKÝCH MENU Příručka uživatele a programátora

umenugr JEDNOTKA PRO VYTVÁŘENÍ UŽIVATELSKÝCH GRAFICKÝCH MENU Příručka uživatele a programátora umenugr JEDNOTKA PRO VYTVÁŘENÍ UŽIVATELSKÝCH GRAFICKÝCH MENU Příručka uživatele a programátora SofCon spol. s r.o. Střešovická 49 162 00 Praha 6 tel/fax: +420 220 180 454 E-mail: sofcon@sofcon.cz www:

Více

36 Elektronické knihy

36 Elektronické knihy 36 Elektronické knihy Uživatelský modul Elektronické knihy slouží k přípravě a publikování informací ve formátu HTML. Tento formát je vhodný pro prezentaci informací na internetu a je široce podporován

Více

1 Webový server, instalace PHP a MySQL 13

1 Webový server, instalace PHP a MySQL 13 Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. 13 Rozhraní, výjimky Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. Doba nutná k nastudování 2 2,5 hodiny

Více

Pole sestavy. Číslo publikace spse01640

Pole sestavy. Číslo publikace spse01640 Pole sestavy Číslo publikace spse01640 Pole sestavy Číslo publikace spse01640 Poznámky a omezení vlastnických práv Tento software a související dokumentace je majetkem společnosti Siemens Product Lifecycle

Více

Uživatelský návod pro zpracování geometrických plánů na webu

Uživatelský návod pro zpracování geometrických plánů na webu Uživatelský návod pro zpracování geometrických plánů na webu Webová aplikace pro zpracování výměnného formátu geometrického plánu byla doplněna o nový způsob kreslení geometrického plánu přímo na webu,

Více

Semestrální práce 2 znakový strom

Semestrální práce 2 znakový strom Semestrální práce 2 znakový strom Ondřej Petržilka Datový model BlockFileRecord Bázová abstraktní třída pro záznam ukládaný do blokového souboru RhymeRecord Konkrétní třída záznamu ukládaného do blokového

Více

Třída DrawingTool. Obrázek 1: Prázdné okno připravené pro kreslení

Třída DrawingTool. Obrázek 1: Prázdné okno připravené pro kreslení Třída DrawingTool strana 1 1. Základ Třída DrawingTool Třída DrawingTool je určena k jednoduchému kreslení pomocí několika základních příkazů do grafického okna zadaných rozměrů (nastavení v konstruktoru),

Více

MBI - technologická realizace modelu

MBI - technologická realizace modelu MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,

Více

1. Programování proti rozhraní

1. Programování proti rozhraní 1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní

Více

Databázové a informační systémy Informační systém prodejny nábytku. Jakub Kamrla, KAM087

Databázové a informační systémy Informační systém prodejny nábytku. Jakub Kamrla, KAM087 Databázové a informační systémy Informační systém prodejny nábytku Jakub Kamrla, KAM087 1. část Funkční a nefunkční požadavky 1. K čemu má systém sloužit Jedná se o informační systém pro jednu nejmenovanou

Více

ANOTACE vytvořených/inovovaných materiálů

ANOTACE vytvořených/inovovaných materiálů ANOTACE vytvořených/inovovaných materiálů Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Formát Druh učebního materiálu Druh interaktivity CZ.1.07/1.5.00/34.0722 III/2 Inovace a

Více

typová konverze typová inference

typová konverze typová inference Seminář Java Programování v Javě II Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Programování v Javě (2) 1/ 36 Téma přednášky Rozhraní: použití, dědičnost Hierarchie

Více

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda 1. Lze vždy z tzv. instanční třídy vytvořit objekt? 2. Co je nejčastější příčinou vzniku chyb? A. Specifikace B. Testování C. Návrh D. Analýza E. Kódování 3. Je defenzivní programování technikou skrývání

Více

8 Třídy, objekty, metody, předávání argumentů metod

8 Třídy, objekty, metody, předávání argumentů metod 8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním

Více

Java - Kresba. 2/28/11 1/8 Java - kresba

Java - Kresba. 2/28/11 1/8 Java - kresba Java - Kresba Základní entity a jejich kresba ve třídě Graphics nemůžeme nastavit linii, šířku a typ, z grafických atributů jí můžeme nastavit pouze barvu Linie (čára)... drawline(int x1, int y1, int x2,

Více

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů. Modely datové Existují různé úrovně pohledu na data. Nejvyšší úroveň je úroveň, která zachycuje pouze vztahy a struktury dat samotných. Konceptuální model - E-R model. Další úrovní je logická úroveň Databázové

Více

Internetový přístup do databáze FADN CZ - uživatelská příručka Modul FADN RESEARCH / DATA

Internetový přístup do databáze FADN CZ - uživatelská příručka Modul FADN RESEARCH / DATA Internetový přístup do databáze FADN CZ - uživatelská příručka Modul FADN RESEARCH / DATA Modul FADN RESEARCH je určen pro odborníky z oblasti zemědělské ekonomiky. Modul neomezuje uživatele pouze na předpřipravené

Více

Stručný postup k použití programu PL7 Junior (programování TSX Micro)

Stručný postup k použití programu PL7 Junior (programování TSX Micro) Stručný postup k použití programu PL7 Junior (programování TSX Micro) 1. Připojení PLC TSX Micro k počítači Kabel, trvale zapojený ke konektoru TER PLC, je nutné zapojit na sériový port PC. 2. Spuštění

Více

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE WEBOWÉ STRÁNKY TŘÍD KAMIL POPELKA ZÁVĚREČNÁ MATURITNÍ PRÁCE BRNO 2011 Prohlášení Prohlašuji, že maturitní práce je mým původním autorským dílem, které

Více

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Využití OOP v praxi -- Knihovna PHP -- Interval.cz Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 29. Otázka : Zpracování událostí: mechanismus událostí a jejich zpracování (Event/Listener), nepřímá invokace (Observer/Observable). Obsah : 1. Mechanisums

Více

Pokročilé programování v jazyce C pro chemiky (C3220) Dědičnost tříd v C++

Pokročilé programování v jazyce C pro chemiky (C3220) Dědičnost tříd v C++ Pokročilé programování v jazyce C pro chemiky (C3220) Dědičnost tříd v C++ Dědičnost tříd Dědičnost umožňuje vytvářet nové třídy z tříd existujících tak, že odvozené třídy (tzv. potomci) dědí vlastnosti

Více

Kontingenční tabulky v MS Excel 2010

Kontingenční tabulky v MS Excel 2010 Kontingenční tabulky v MS Excel 2010 Autor: RNDr. Milan Myšák e-mail: milan.mysak@konero.cz Obsah 1 Vytvoření KT... 3 1.1 Data pro KT... 3 1.2 Tvorba KT... 3 2 Tvorba KT z dalších zdrojů dat... 5 2.1 Data

Více

Příručka pro aplikaci KSnapshot

Příručka pro aplikaci KSnapshot Richard J. Moore Robert L. McCormick Brad Hards Kontrolor: Lauri Watts Vývojář: Richard J Moore Vývojář: Matthias Ettrich Překlad: Lukáš Vlček 2 Obsah 1 Úvod 5 2 Použití KSnapshot 6 2.1 Spuštění KSnapshot.....................................

Více

1 Uživatelská dokumentace

1 Uživatelská dokumentace 1 Uživatelská dokumentace Systém pro závodění aut řízených umělou inteligencí je zaměřen na závodění aut v prostředí internetu. Kromě toho umožňuje testovat jednotlivé řidiče bez nutnosti vytvářet závod

Více

PowerPoint 2010 Kurz 4

PowerPoint 2010 Kurz 4 PowerPoint 2010 Kurz 4 Animace... 1 Texty vkládání, formátování... 3 Grafy vkládání, formátování... 5 Grafické objekty... 6 Přechody mezi snímky... 7 CZ.1.07/2.2.00/28.0221 Animace Animace jsou umístěny

Více

22. Tvorba webových stránek

22. Tvorba webových stránek 22. Tvorba webových stránek Webové stránky jsou spolu s elektronickou poštou nejpoužívanější prostředky internetu. Brouzdáme li internetem používáme nějaký prohlížeč. To, co vidíme na obrazovce v prohlížeči

Více

KAPITOLA 3 - ZPRACOVÁNÍ TEXTU

KAPITOLA 3 - ZPRACOVÁNÍ TEXTU KAPITOLA 3 - ZPRACOVÁNÍ TEXTU KLÍČOVÉ POJMY textové editory formát textu tabulka grafické objekty odrážky a číslování odstavec CÍLE KAPITOLY Pracovat s textovými dokumenty a ukládat je v souborech různého

Více

Moodle uživatelská příručka

Moodle uživatelská příručka Moodle uživatelská příručka Učební text pro studenty dálkového studia OSŠPo Kolín Projekt Zavádění nových forem výuky do dálkového studia, využití e-learningového prostředí pro zefektivnění práce studentů

Více

Bloky, atributy, knihovny

Bloky, atributy, knihovny Bloky, atributy, knihovny Projekt SIPVZ 2006 Řešené příklady AutoCADu Autor: ing. Laďka Krejčí 2 Obsah úlohy Procvičíte zadávání vzdáleností a délek úsečky kreslící nástroje (text, úsečka, kóta) vlastnosti

Více

Popis rozšířujících funkcí JScriptu

Popis rozšířujících funkcí JScriptu Popis rozšířujících funkcí JScriptu Tato příloha obsahuje stručný popis funkcí, které rozšiřují základní funkce JScriptu. Ty usnadňují komunikaci s jádrem programu, takže není potřeba pokaždé sestavovat

Více

Systém elektronického rádce v životních situacích portálu www.senorady.cz

Systém elektronického rádce v životních situacích portálu www.senorady.cz Systém elektronického rádce v životních situacích portálu www.senorady.cz Obec Senorady Miroslav Patočka 2006 Obsah: 1. Úvodní informace 1.1 Informace pro uživatele 1.1.1 Přístupnost HTML, PDA, WAP, XML

Více

Závěrečná práce. AutoCAD Inventor 2010. (Zadání D1)

Závěrečná práce. AutoCAD Inventor 2010. (Zadání D1) Závěrečná práce AutoCAD Inventor 2010 (Zadání D1) Pavel Čurda 4.B 4.5. 2010 Úvod Tato práce obsahuje sestavu modelu, prezentaci a samotný výkres Pákového převodu na přiloženém CD. Pákový převod byl namalován

Více

1 Strukturované programování

1 Strukturované programování Projekt OP VK Inovace studijních oborů zajišťovaných katedrami PřF UHK Registrační číslo: CZ.1.07/2.2.00/28.0118 1 Cíl Seznámení s principy strukturovaného programování, s blokovou strukturou programů,

Více

Pokyny pro žáky k testování písemné zkoušky na počítači

Pokyny pro žáky k testování písemné zkoušky na počítači Pokyny pro žáky k testování písemné zkoušky na počítači Posadíte se na určené místo v počítačové učebně, kde již předtím správce zkoušky spustil určený internetový prohlížeč s IP adresou zkouškového serveru.

Více

2 Tvorba interaktivních grafických programů

2 Tvorba interaktivních grafických programů 2 Tvorba interaktivních grafických programů Studijní cíl Tento blok je věnován vytváření interaktivních grafických programů. Podrobně bude vysvětleno, jakým způsobem je možno programově reagovat na události

Více

Popis výukového materiálu

Popis výukového materiálu Popis výukového materiálu Číslo šablony III/2 Číslo materiálu VY_32_INOVACE_I.4.2 Autor Petr Škapa Datum vytvoření 05. 09. 2012 Předmět, ročník Tematický celek Téma Druh učebního materiálu Anotace (metodický

Více

Technologické postupy práce s aktovkou IS MPP

Technologické postupy práce s aktovkou IS MPP Technologické postupy práce s aktovkou IS MPP Modul plánování a přezkoumávání, verze 1.20 vypracovala společnost ASD Software, s.r.o. dokument ze dne 27. 3. 2013, verze 1.01 Technologické postupy práce

Více

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 KAPITOLA 1 Na úvod o Javě 15 Počítačový program 15 Vysokoúrovňový programovací

Více

Vytvoření tabulky: V následujícím okně si editujete okno tabulky. Vyzkoušejte si viz podklad Cv_09_Podklad_tabulka.xls a Cv_09_Tabulka.dwg.

Vytvoření tabulky: V následujícím okně si editujete okno tabulky. Vyzkoušejte si viz podklad Cv_09_Podklad_tabulka.xls a Cv_09_Tabulka.dwg. 1. Tabulky, styly tabulek Obecné texty k vytváření tabulek najdete na této adrese: http://www.fce.vutbr.cz/studium/materialy/autocad/acad_i_cz/defaultce.html Nabídka Kreslení Tabulky. Lze se k nim dostat

Více

APS Administrator.CR

APS Administrator.CR APS Administrator.CR Kreditní manažer v systému APS (Rozšiřuje programový modul pro APS Administrator) Instalační a uživatelská příručka 2004 2015,TECH FASS s.r.o., Věštínská 1611/19, 153 00 Praha, www.techfass.cz,

Více

Generické programování

Generické programování Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =

Více

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Radek Havlík [ÚLOHA 32 ODKAZY A TEXTY]

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Radek Havlík [ÚLOHA 32 ODKAZY A TEXTY] Aplikované úlohy Solid Edge SPŠSE a VOŠ Liberec Radek Havlík [ÚLOHA 32 ODKAZY A TEXTY] 1 CÍL KAPITOLY Cílem této kapitoly je naučit se tvořit odkazy ke strojním součástem, plochám, dílům, sestavám, a práci

Více

Interaktivní tabule SMART Notebook

Interaktivní tabule SMART Notebook Gymnázium Ostrava Hrabůvka, příspěvková organizace Františka Hajdy 34, Ostrava Hrabůvka Projekt Využití ICT ve výuce na gymnáziích, registrační číslo projektu CZ.1.07/1.1.07/02.0030 Interaktivní tabule

Více

Prohlížení a editace externích předmětů

Prohlížení a editace externích předmětů Prohlížení a editace externích předmětů 1. Spuštění modulu Externí předměty 2. Popis prostředí a ovládacích prvků 2.1. Rozbalovací seznamy 2.3. Seznamy 2.3.1. Definice předmětů 2.3.2. Vypsané předměty

Více

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor Název materiálu / Druh CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT

Více

verze Grafický editor PALSTAT s.r.o. systémy řízení jakosti PALSTAT CAQ 1 Obsah

verze Grafický editor PALSTAT s.r.o. systémy řízení jakosti PALSTAT CAQ 1 Obsah 1 Obsah 1 Obsah... 1 2 Úvod... 2 2.1 Výhody... 2 2.2 Základní ovládání... 2 3 Menu... 3 3.1 Menu Soubor... 3 3.1.1 Menu Soubor / Nový... 3 3.1.2 Menu Soubor / Otevřít... 3 3.1.3 Menu Soubor / Otevřít podle

Více

GIS Geografické informační systémy

GIS Geografické informační systémy GIS Geografické informační systémy Obsah přednášky Prostorové vektorové modely Špagetový model Topologický model Převody geometrií Vektorový model Reprezentuje reálný svět po jednotlivých složkách popisu

Více

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth Evropský sociální fond. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace Ing. Ondřej Guth Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze

Více

Analýza a modelování dat. Helena Palovská

Analýza a modelování dat. Helena Palovská Analýza a modelování dat Helena Palovská Analýza a modelování pro SW projekt Strukturovaný přístup Dynamická část (procesy, aktivity, funkce) Statická část (data) Objektově orientovaný přístup use case

Více

Použití dynamických parametrů prostředí SET_ENV_ v MarushkaDesignu

Použití dynamických parametrů prostředí SET_ENV_ v MarushkaDesignu 0 Použití dynamických parametrů prostředí SET_ENV_ v MarushkaDesignu OBSAH 1 CÍL PŘÍKLADU...2 2 PRÁCE S PŘÍKLADEM...2 3 UKÁZKA DIALOGOVÉHO OKNA...3 4 STRUČNÝ POPIS PŘÍKLADU V MARUSHKADESIGNU...5-1 - 1

Více

Obslužný software. PAP ISO 9001

Obslužný software.  PAP ISO 9001 Obslužný software PAP www.apoelmos.cz ISO 9001 červen 2008, TD-U-19-20 OBSAH 1 Úvod... 4 2 Pokyny pro instalaci... 4 2.1 Požadavky na hardware...4 2.2 Postup při instalaci...4 3 Popis software... 5 3.1

Více

1. Webový server, instalace PHP a MySQL 13

1. Webový server, instalace PHP a MySQL 13 Úvod 11 1. Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

Programování v jazyku LOGO - úvod

Programování v jazyku LOGO - úvod Programování v jazyku LOGO - úvod Programovací jazyk LOGO je určen pro výuku algoritmizace především pro děti školou povinné. Programovací jazyk pracuje v grafickém prostředí, přičemž jednou z jeho podstatných

Více

Elektronické publikování - prezentace. 23. dubna 2009 VŠB - TUO. Beamer - grafické zpracování prezentace. Rostislav Šuta, sut017.

Elektronické publikování - prezentace. 23. dubna 2009 VŠB - TUO. Beamer - grafické zpracování prezentace. Rostislav Šuta, sut017. Beamer - Elektronické publikování - VŠB - TUO 23. dubna 2009 Obsah 1 2 3 4 5 6 Obsah 1 2 3 4 5 6 schémata barvy písma změna fontu vnitřní schémata vnější schémata Obsah Prezentace bez navigace e stromovou

Více

Elektronické podání žádosti o udělení výjimky pro použití konvenčních osiv v ekologickém zemědělství prostřednictvím Portálu farmáře MZe

Elektronické podání žádosti o udělení výjimky pro použití konvenčních osiv v ekologickém zemědělství prostřednictvím Portálu farmáře MZe Uživatelská příručka Elektronické podání žádosti o udělení výjimky pro použití konvenčních osiv v ekologickém zemědělství prostřednictvím Portálu farmáře MZe Ministerstvo zemědělství České republiky únor

Více

Elektronické podání žádosti o udělení výjimky pro použití konvenčních osiv v ekologickém zemědělství prostřednictvím Portálu farmáře MZe

Elektronické podání žádosti o udělení výjimky pro použití konvenčních osiv v ekologickém zemědělství prostřednictvím Portálu farmáře MZe Uživatelská příručka Elektronické podání žádosti o udělení výjimky pro použití konvenčních osiv v ekologickém zemědělství prostřednictvím Portálu farmáře MZe verze pro mobilní zařízení a čtečky elektronických

Více

UniLog-D. v1.01 návod k obsluze software. Strana 1

UniLog-D. v1.01 návod k obsluze software. Strana 1 UniLog-D v1.01 návod k obsluze software Strana 1 UniLog-D je PC program, který slouží k přípravě karty pro záznam událostí aplikací přístroje M-BOX, dále pak k prohlížení, vyhodnocení a exportům zaznamenaných

Více

Vývojové prostředí,průvodce novou aplikací

Vývojové prostředí,průvodce novou aplikací Vývojové prostředí,průvodce novou aplikací Realizace praktických úloh zaměřených na dovednosti v oblastech: Vývojové prostředí programu Control Web 2000 Vytvoření jednoduchého technologického schéma pomocí

Více

MRBT. Stacionární průmyslový robot EPSON C3 aplikace pro prezentaci

MRBT. Stacionární průmyslový robot EPSON C3 aplikace pro prezentaci FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ MRBT Stacionární průmyslový robot EPSON C3 aplikace pro prezentaci Autoři: Jaromír Picka ID:115255 Jaroslav Večeřa ID:115306

Více

Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda

Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda Anotace sady: Úvod do objektově orientovaného programování, VY_32_INOVACE_PRG_OOP_01 Autor: Blanka Sadovská Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda Druh učebního materiálu:

Více

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika Vyšší odborná škola ekonomická a zdravotnická a Střední škola, Boskovice INOVACE PŘEDMĚTŮ ICT MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika Zpracoval: Jaroslav Kotlán srpen 2009s Úvod Modul Programování

Více

Asistivní technologie a dohledové systémy Dyslexie čtení pomocí okénka

Asistivní technologie a dohledové systémy Dyslexie čtení pomocí okénka Asistivní technologie a dohledové systémy Dyslexie čtení pomocí okénka Michal Náhlík Software pro podporu výuky čtení pomocí okénka Úvod Software, který nahrazuje fyzickou pomůcku, takzvané okénko, používané

Více

Popis ovládání aplikace - Mapový klient KÚPK

Popis ovládání aplikace - Mapový klient KÚPK Popis ovládání aplikace - Mapový klient KÚPK Úvodní informace K využívání této aplikace musíte mít ve Vašem internetovém prohlížeči nainstalovaný plugin Adobe Flash Player verze 10 a vyšší. Mapová aplikace

Více

Informační systém pro e-learning manuál

Informační systém pro e-learning manuál Informační systém pro e-learning manuál Verze 1.00 Úvod Tento dokument popisuje způsob práce s informačním systémem pro elektronické vzdělávání. Systém je určený pro vytvoření elektronického kurzu a jeho

Více

Programování II. Abstraktní třída Vícenásobná dědičnost 2018/19

Programování II. Abstraktní třída Vícenásobná dědičnost 2018/19 Programování II Abstraktní třída Vícenásobná dědičnost 2018/19 Osnova přednášky Polymorfismus - důsledky. Abstraktní třída. Vícenásobná dědičnost. Polymorfismus - důsledky Polymorfismus Polymorfismus je

Více

Reranking založený na metadatech

Reranking založený na metadatech České vysoké učení technické v Praze Fakulta informačních technologií Katedra softwarového inženýrství Reranking založený na metadatech MI-VMW Projekt IV - 1 Pavel Homolka Ladislav Kubeš 6. 12. 2011 1

Více

Softwarové komponenty a Internet

Softwarové komponenty a Internet Softwarové komponenty a Internet Doc. Dr. Ing. Miroslav Beneš Katedra informatiky FEI VŠB-TU Ostrava Miroslav.Benes@vsb.cz Obsah přednášky Motivace Vývoj přístupů k tvorbě programů Definice komponenty

Více

Programování II. Třídy a objekty (objektová orientovanost) 2018/19

Programování II. Třídy a objekty (objektová orientovanost) 2018/19 Programování II Třídy a objekty (objektová orientovanost) 2018/19 Osnova přednášky Objektový přístup (proč potřebujeme objekty). Třídy, objekty,... Příklad. Proč potřebujeme objekty? Udržovatelnost softwaru

Více