České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů
Bakalářská práce
Analýza datových souborů pro ukládání informací ve formě "myšlenkových map" Vojtěch Medonos
Vedoucí práce: Ing. Pavel Náplava
Studijní program: Elektrotechnika a informatika, strukturovaný, Bakalářský Obor: Výpočetní technika 1. května 2010
Prohlášení Prohlašuji, že jsem práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný duvod proti užití tohoto školního díla ve smyslu §60 Zákona c. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon).
V Praze dne 28. 5. 2010
..........................................
Abstrakt Práce se zabývá analýzou datových formátů aplikací Freemind a MindManager a realizací konverzního nástroje mezi nimi. Výstupem práce bude program, který bude umožňovat převod uložené myšlenkové mapy z jednoho formátu do druhého.
Abstract This work is focused on analysis of data formats used in Freemind and MindManager and on implementation of conversion tool between them. The output of this work will be an application, which will be able convert saved mind maps from one format to the other.
Obsah
1 Úvod
1
2 Teorie
3
2.1 Úvod ….................................................................................................................................. 3 2.2 Co je myšlenková mapa? …................................................................................................... 4 2.3 Historie ….............................................................................................................................. 4 2.4 Tvorba mapy …...................................................................................................................... 5 2.5 Způsob zpracování …............................................................................................................ 6 2.6 Použití …................................................................................................................................ 6 2.6.1 Řešení problému …..................................................................................................... 7 2.6.2 Analýza složité myšlenky …....................................................................................... 7 2.6.3 Brainstorming …......................................................................................................... 8 2.6.4 Design softwarových aplikací …................................................................................. 8 2.6.5 Anonymní spolupráce …............................................................................................. 9 2.6.6 Uchování informací …................................................................................................ 9 2.6.7 Mnemotechnická pomůcka …..................................................................................... 9 3 Software pro tvorbu map
11
3.1 Požadavky …........................................................................................................................ 11 3.2 Freemind ….......................................................................................................................... 12 3.2.1 Popis …..................................................................................................................... 12
3.2.2 Funkce ….................................................................................................................. 13 3.2.3 Práce s aplikací …..................................................................................................... 13 3.3 MindManager ….................................................................................................................. 13 3.3.1 Popis …..................................................................................................................... 13 3.3.2 Funkce …................................................................................................................... 14 3.3.3 Práce s aplikací …..................................................................................................... 15 3.4 Srovnání …........................................................................................................................... 15 4 Analýza datových souborů
17
4.1 Úvod …................................................................................................................................ 17 4.2 Jazyk XML …...................................................................................................................... 17 4.2.1 Základní vlastnosti …................................................................................................ 18 4.2.2 DTD …...................................................................................................................... 18 4.2.3 Syntaxe …................................................................................................................. 19 4.3 Datové soubory – Freemind …............................................................................................ 19 4.3.1 Popis …..................................................................................................................... 19 4.3.2 Tagy …...................................................................................................................... 19 4.3.2.1 Párové tagy …............................................................................................. 20 4.3.2.2 Nepárové tagy …......................................................................................... 20 4.3.2.3 Párové i nepárové tagy …............................................................................ 21 4.4 Datové soubory – MindManager …..................................................................................... 21 4.4.1 Popis …..................................................................................................................... 21 4.4.2 Tagy …...................................................................................................................... 22 4.4.2.1 OneTopic …................................................................................................. 22 4.4.2.2 Relationships …........................................................................................... 24 4.4.2.3 StyleGroup ….............................................................................................. 24 4.4.2.4 MapViewGroup …....................................................................................... 24 4.4.2.5 DocumentGroup ….................................................................................... 24 5 Realizace
27
5.1 Požadavky …........................................................................................................................ 27 5.2 Postup implementace …....................................................................................................... 27 5.3 Použité technologie …......................................................................................................... 28 5.3.1 Java 1.5.0 ….............................................................................................................. 28 5.3.2 DOM API …............................................................................................................. 28
5.3.3 Netbeans IDE 5.0 ….................................................................................................. 29 5.4 Popis implementace …......................................................................................................... 29 5.4.1 Načtení souboru ….................................................................................................... 29 5.4.2 Společné části zpracování souboru …....................................................................... 29 5.4.3 Grafická verze …....................................................................................................... 29 5.4.4 Textová verze …........................................................................................................ 30 5.4.5 Převod z .mm na .xml …........................................................................................... 30 5.4.6 Převod z .xml na .mm …........................................................................................... 30 6 Testování
31
6.1 Popis testovací mapy …....................................................................................................... 31 6.2 Konverze do Freemindu ….................................................................................................. 33 6.3 Zpětná konverze ….............................................................................................................. 34 7 Závěr
35
Literatura
37
A Gramatiky
39
A.1 Freemind …......................................................................................................................... 39 A.2 MindManager ….................................................................................................................. 40 B Uživatelská příručka
43
B.1 Textová verze ….................................................................................................................. 43 B.2 Grafická verze …................................................................................................................. 43 C Obsah přiloženého CD
45
Seznam obrázků 2.1 Historická myšlenková mapa od Porfyria z Tyru 2.2 Příklad myšlenkové mapy řešící problém 2.3 Při brainstormingu ručně vytvořená myšlenková mapa 3.1 Myšlenková mapa vytvořená v aplikaci Freemind 3.2 Myšlenková mapa vytvořená v aplikaci MindManager 5.1 Ganttův diagram projektu 6.1 Testovací mapa vytvořená v MindManageru 6.2 Testovací mapa převedená do Freemindu 6.3 Výsledná mapa v MindManageru po dvou konverzích B.1 Použití textové verze B.2 Výběr souboru v grafické verzi B.3 Výpis logu průběhu konverze
Seznam tabulek 3.1 Srovnání programů Freemind a MindManager
Kapitola 1
Úvod
Myšlenkové mapy se pro svou jednoduchost a efektivitu stávají zajímavým fenoménem, který zasahuje do mnoha oborů. Pro jejich tvorbu vznikla celá řada softwarových nástrojů, které umožňují s mapami pohodlně pracovat. Každá aplikace ovšem nabízí různé funkce a pomůcky a je tedy těžké vybrat si právě jednu ideální. Některý nástroj je jednoduchý a rychlý, ale zase neposkytuje příliš mnoho možností. Jiný program je zase velmi komplexní, ale zato pomalý. Datové formáty, ve kterých jsou myšlenkové mapy uloženy, jsou navíc málokdy kompatibilní s jiným nástrojem. Vzniká zde proto potřeba využití konvertoru, který by tak umožnil používání více programů pro tvorbu map bez nutnosti jejich znovuvytváření v každé aplikaci. Cílem této práce je realizace právě takového konvertoru, který umí převést základní strukturu mapy vytvořené v programu Freemind do MindManageru a zpět. Před samotnou implementací je nutné zanalyzovat datové formáty obou nástrojů, aby bylo možné provádět korektní konverze.
1
2
Kapitola 2
Teorie
V této kapitole podám ucelený pohled na problematiku myšlenkových map, jejich tvorbu a využití.
2.1 Úvod V dnešní rychlé a uspěchané době se nám často stane, že nám přijde na mysl nejaký zajímavý nápad či myšlenka, ale vzápětí se rozplyne jako pára nad hrncem. To se může stát nejen jednotlivci, ale také skupině lidí, kteří společně řeší nějaký problém. Ať už je to tým lidí, zabývající se vývojem nové technologie, produktu či se snaží hledat zlepšení v již stávajícím řešení, vždy je potřeba co možná nejefektivněji a nejrychleji zaznamenat nové nápady a myšlenky. Ty mohou být později znovu rozebrány a podrobněji analyzovány. Velmi dobrým nástrojem k přehlednému záznamu myšlenek jsou myšlenkové (mentální) mapy. Jedná se o zachycení a rozvoj jednotlivých myšlenkových pochodů do stromovité struktury, která umožnuje efektivně sledovat požadovanou linii uvažování. To je základní předpoklad pro vyhledání a znovuoživení původní myšlenky. Zároveň se dá mapa použít k názornému uložení a zobrazení informací a poskytuje tak výborný prostředek pro intenzivní metodu učení. Tyto vlastnosti umožnily v posledních letech veliký rozvoj myšlenkových map, které se stávají téměř nedílnou součástí nejen pracovních procesů, ale stále častěji jsou používány také v soukromém životě. 3
2.2 Co je myšlenková mapa? Myšlenková mapa je struktura, která slouží k záznamu slov, nápadů a informací. Ty jsou uspořádány kolem kořenového slova (tématu) v logických blocích. Jednotlivé části jsou propojeny čárami či jinými grafickými značkami. Tvoří tak graf, který je nejčastěji stromem, nicméně v některých případech se mohou vyskytnout i jiné vazby, které tak narušují čistě stromovou strukturu. Strom je takový graf, ve kterém neexistují kružnice a tím pádem z jednoho uzlu do druhého existuje jen jediná cesta. Sledováním této cesty je pak možno snadno nalézt požadovanou informaci či zrekonstruovat danou myšlenku jako celek. Velmi vhodné je používání obrázků, barev a jiných grafických prvků, které výrazně zlepšují orientaci v mapě a usnadňují porozumění obsahu.
2.3 Historie Koncept myšlenkové mapy je znám už staletí a byl hojně využíván učenci, psychology či inženýry k učení, grafickému zobrazování a řešení problémů. První záznamy pocházejí již od Porfyria z Tyru (232-304), novoplatónského filosofa, který využil mapu ke znázornění Aristotelových kategorií. Ve středověku používal mapy například filosof Ramon Llull (1235 – 1315). V 50. letech 20. století byla pro potřeby porozumění procesu lidského učení vymyšlena sémantická síť. Tato síť je orientovaným grafem, který znázorňuje sémantické vztahy mezi různými koncepty. Z této sítě se postupně v 60. letech vyvinuly myšlenkové mapy, a to především zásluhou Allana M. Collinse, který je považován za otce moderního pojetí map. Ovšem za zakladatele moderního využití myšlenkových map sám sebe prohlašuje Tony Buzan, britský populární autor knih o technice učení a správného využití mozku. Vlastní také ochrannou známku na termín „Mind Map“. V dnešní době se mapy či podobné koncepty stávají velice rozšířeným a oblíbeným prostředkem pro mnoho činností, které souvisí s výukou, učením, plánováním či brainstormingem.
4
Obrázek 2.1: Historická myšlenková mapa od Porfyria z Tyru
2.4 Tvorba mapy Aby daná myšlenková mapa mohla správně plnit svojí funkci, je důležité při její tvorbě dodržovat určitá pravidla. Ta samozřejmě nemusíme pokaždé plnit doslovně, ale je dobré se jimi alespoň rámcově řídit. Při tvorbě mapy postupujeme takto:
●
hlavní téma umístíme do středu
●
další části rozmístíme kolem centrálního tématu
●
všechny uzly se mohou dále dělit na další uzly podle potřeby
●
rodičovské uzly propojíme s potomky čárami 5
●
pomocnými čárami či šipkami můžeme naznačit vztahy mezi uzly napříč hierarchií
●
mapu doplníme obrázky, barvami či jinými zvýrazňujícími grafickými prvky
●
použijeme jednotlivá slova či kratší slovní spojení – soustřeďte se na strukturu a souvislosti mezi jednotlivými částmi
Použití obrázků a barev si dobře rozmyslíme, přemíra použití může vést naopak k znepřehlednění mapy. Pokud je potřeba nějaké téma rozvést, je možné použít delší text ve větách. V tomto případě je tak nejlepší učinit v listu - posledním uzlu, který nemá žadného potomka – na jiném místě by mnoho textu působilo rušivě.
2.5 Způsob zpracování K vytvoření myšlenkové mapy můžeme použít buď tužku a papír nebo počítač. Každý způsob má svoje klady a zápory. S papírem a tužkou se lépe pracuje a umožňuje nám mapu vytvořit rychleji a přesně takovou, jakou chceme. Mapa na papíře se ovšem hůře upravuje a tvůrce je omezen velikostí papíru. V počítači máte naopak k dispozici neomezeně velkou plochu, byť se na ním mapa tvoří pomaleji. Ovšem pokud je tvůrce zběhlý v používání zvoleného programu, lze myšlenkovou mapu vytvořit poměrně rychle. V počítači se mapa také velmi snadno upravuje či sdílí s ostatními uživateli. Často se také hodí možnost sbalit potomky daného uzlu a zobrazit si tak jen skutečně potřebné informace.
2.6 Použití Jak již bylo řečeno, myšlenkové mapy mají v současné době mnoho využití v osobním i pracovním prostředí. Příklady využití:
●
řešení problému
●
analýza složité myšlenky
●
brainstorming
●
design softwarových aplikací
●
anonymní spolupráce 6
●
uchování informací
●
mnemotechnická pomůcka
2.6.1 Řešení problému Pokud stojíme před nějakým problémem či rozhodnutím, může se nad danou situací zamyslet a vytvořit myšlenkovou mapu volnou asociací nápadů. Pokud hotovou mapu později zanalyzujeme, může nám pomoci nalézt optimální řešení.
Obrázek 2.2: Příklad myšlenkové mapy řešící problém
2.6.2 Analýza složité myšlenky Některé nápady, které se zrodí v mozku jsou tak složité, že je težké je smysluplně popsat slovy. Pokud hlavní body zaznamenáme do mapy, přehledně tak ukážeme vztahy mezi jednotlivými částmi a usnadníme tak analýzu a případné předání obsahu myšlenky někomu jinému.
7
2.6.3 Brainstorming Při této činnosti se sejde skupina lidí, která má řešit určitý problém. Jednotliví členové předkládají stručně své návrhy a nápady. Myšlenková mapa je ideálním formátem pro záznam těchto nápadů, které se spíše náhodně rozmísťují kolem hlavního tématu. Analýza a vytváření logických vazeb mezi jednotlivými podněty pak přichází na řadu až později. Je tak umožněno prozkoumání maximálního počtu návrhů velmi podrobně.
Obrázek 2.3: Při brainstormingu ručně vytvořená myšlenková mapa 2.6.4 Design softwarových aplikací V nejranějším stupni vývoje aplikace se tvůrci zabývají designem výsledného produktu. Na začátku 8
musí vždy stát jeden či více nápadů, které se dají velmi přehledně zpracovat v myšlenkové mapě a poté předat k dalším stadiím vývoje, například k vytvoření popisu pomocí UML. 2.6.5 Anonymní spolupráce Svou názorností a logickou strukturou se myšlenková mapa hodí ke spolupráci mezi lidmi, kteří se vzájemně neznají či nemají možnost přímého kontaktu. Dobře zhotovená mapa může předat druhému člověku výsledek předchozí činnosti či postoj k danému problému. 2.6.6 Uchování informací V myšlenkové mapě se dají velmi dobře uložit nejdůležitější poznatky týkající se určitého tématu. Z dlouhého a nudného textu se tak dají vytáhnout informace a uložit je v mnohem kompaktnější podobě. To samé lze provést se záznamem mluveného projevu, kde je potřeba vyhledání stěžejních informací ještě větší. 2.6.7 Mnemotechnická pomůcka Vzhledem k přívětivé vizuální stránce může být pro mnoho lidí zapamatování informací obsažených v mapě podstatně jednodušší než informací z jiného zdroje. To působí pozitivně také na morálku při učení.
9
10
Kapitola 3
Software pro tvorbu map
V této kapitole se zaměřím na software používaný pro tvorbu map, konkrétně pak na Freemind a MindManager. Posléze srovnám komerční a nekomerční software na příkladu těchto dvou programů.
3.1 Požadavky Pokud se rozhodneme tvořit mapy na počítači, určitě budeme potřebovat vhodný software. Programů existuje celá řada, nicméně ne všechny jsou stejně kvalitní a neposkytují dostatečné pohodlí pro práci s mapami. Software by měl splňovat tyto základní požadavky:
●
plocha pro mapu je dostatečně velká, téměř přes celou obrazovku
●
lišty s pomocnými nástroji je možno schovat a zvětšit tak prostor pro mapu
●
ovládání je intuitivní, aby bylo možno nejčastější úkony automatizovat
●
lze použít klávesových zkratek
●
lze použít různé grafické prvky, aby si každý uživatel mohl mapu upravit podle svého
●
výslednou mapu je možné exportovat do různých formátů pro usnadnění sdílení
11
3.2 Freemind 3.2.1 Popis Freemind je free software pro tvorbu myšlenkových map. Je napsán v jazyce Java. Je vyvíjen jako open source projekt pod licencí GPL. Na oficiální stránce lze sledovat aktuality o programu či se přihlásit jako vývojář. Mezi free nástroji pro tvorbu map patří Freemind mezi nejpopulárnější a nejpoužívanější. Práce s ním je rychlá a intuitivní a umožňuje tak snadno přenést myšlenky do počítače.
Obrázek 3.1: Myšlenková mapa vytvořená v aplikaci Freemind
12
3.2.2 Funkce Freemind umožnuje:
●
použití HTML odkazů na www stránky či lokální soubory
●
sbalení a rozbalení jednotlivých uzlů
●
snadný pohyb po mapě
●
operaci undo
●
jednoduchou práci s uzly metodou Drag'n Drop
●
snadné kopírování textu a jiných struktur z i do mapy
●
export mapy do HTML
●
vyhledávání výrazů v mapě
●
snadnou úpravu dlouhých linií složených z více uzlů
●
použití ikon, různých barev a fontů
●
prohlížet si soubory na pevném disku ve formátu mapy ve File módu
3.2.3 Práce s aplikací Protože jde o freewarový program, postrádá Freemind některé pokročilejší možnosti nastavení a předvoleb. To jej na druhou stranu zpřehledňuje a usnadňuje jeho použití. Maximální možná plocha je věnována mapě. Horní panel nástrojů a levý panel s ikonami lze skrýt a již tak velký prostor ještě rozšířit. Většině operací jsou přiřazeny klávesové zkratky což tvorbu a úpravu map velice urychluje. Pomocí klávesnice se tak dá program plně ovládat. Myší se dají realizovat přesuny uzlů, jejich kopírování, rozbalování a sbalování. Také k přiřazení ikony k uzlu stačí jedno kliknutí myši. Grafická stránka aplikace je poměrně strohá, přesto však obsahuje všechny důležité prvky pro vizuální úpravu výsledné mapy.
3.3 MindManager 3.3.1 Popis Jedná se o komerční software pro tvorbu map od firmy Mindjet. Je napsán v jazyce Java. Na
13
oficiálních internetových stránkách výrobce lze stáhnout trial verzi, která umožnuje třicetidenní používání omezeného množství funkcí zdarma. Poté je možné program zakoupit a upgradovat na plnou verzi. Nové verze jsou pro zákazníky k dispozici zdarma.
Obrázek 3.2: Myšlenková mapa vytvořená v aplikaci MindManager
3.3.2 Funkce MindManager umožňuje:
●
použití mnoha grafických prvku při tvorbě mapy
●
zvolit velké množství předvoleb a pokročilých nastavení
●
připojení poznámek, odkazů a příloh k jednotlivým tématům
14
●
spolupráci s produkty řady Microsoft Office – Word, Excel, PowerPoint, Visio, Project
●
tvorbu nového dynamického obsahu pro aplikace Microsoft Office
●
spolupráci s Microsoft Outlook – vytváření nových kontaktů, poznámek a úkolů
●
vyhledávání a filtrování map
●
integrovaný webový prohlížeč pro zobrazení například Google Docs
●
sdílení dat vytvořených v MindManageru pomocí služeb jako Facebook, Twitter a MySpace
●
export do mnoha různých formátů
●
módy prezentace, shrnutí a brainstormingu
●
použití RSS kanálu
●
ochranu dat pomocí hesla
●
simultánní práci více uživatelů na jedné mapě
3.3.3 Práce s aplikací MindManager je určen pro náročnější uživatele, kteří hledají možnosti pokročilého nastavení a neomezují se pouze na práci s mapou. Díky možnosti sdílení a ochrany dat a spolupráci s jinými programy se MindManager hodí také pro použití ve firmách. Prostor pro mapu je poměrně malý, což ovšem vyvažuje možnost pracovní plochu přiblížit či oddálit. Při tvorbě a úpravě mapy uživatel využije především myš, pomocí které volí akce z panelu nástrojů. Nechybí ovšem ani možnost použití klávesových zkratek. Grafická stránka je velmi dobrá a pomocí obrázků, nastavení stylů, fontů, barev a dalších úkonů lze vytvořit interaktivní a vizuálně zajímavou myšlenkovou mapu.
3.4 Srovnání Freemind a MindManager jsou typickými zástupci svých kategorií, tedy freewarových a komerčních aplikací. Přestože jsou oba psány v jazyce Java, lze pozorovat rozdílné požadavky na hardware počítače. MindManager je robustní, s mnoha možnostmi a proto pomalejší a náročnější, zatímco Freemind je poměrně jednoduchý, ale velmi svižný. MindManager se hodí spíše pro použití ve firmách či při větších projektech, naproti tomu Freemind je vhodnější pro domácí použití. Obě 15
aplikace mají své kladné a záporné stránky, což vybízí k tvorbě konverzního můstku mezi nimi a tím pádem k možnosti využívat každý program k té činnosti, ve které vyniká.
+
-
Freemind
MindManager
rychlost
Spolupráce s Microsoft Office
velká pracovní plocha
sdílení a ochrana dat
jednoduché používání
mnoho možností nastavení
zdarma
simultánní práce více uživatelů
graficky jednodušší
pomalé
méně možností nastavení
hardwarově náročnější
obrázky se neukládají přímo do mapy
místy nepřehledné rozhraní
nelze použít pro komplexnější projekty
pořizovací cena
Tabulka 3.1: Srovnání programů Freemind a MindManager
16
Kapitola 4
Analýza datových souborů Cílem práce je vytvoření konverzního nástroje, proto je třeba zanalyzovat datové formáty jednotlivých aplikací, což udělám v této kapitole.
4.1 Úvod Jelikož myšlenkové mapy tvoří ze své definice stromovitou strukturu, je nutné tomuto přizpůsobit také formu jejího uložení. Lze uložit data v binární podobě, nicméně mnohem vhodnější je použít nějaký jazyk, který je ze své definice výhodný k ukládání stromové struktury. Pro tento účel se hodí jazyk XML.
4.2 Jazyk XML Jedná se o značkovací jazyk, který byl vyvinut konsorciem W3C. Název je zkratka spojení Extensible Markup Language. XML umožňuje vytváření vlastních jazyků pro různé účely a různé typy dat. Byl navržen tak, aby umožňoval snadnou výměnu dat mezi aplikacemi. U jednotlivých dokumentů popisuje jejich věcný obsah, vzhled musí definovat aplikace, která s XML dokumentem pracuje. 17
4.2.1 Základní vlastnosti XML má několik důležitých vlastností, které umožňují jeho široké rozšíření a použití:
●
specifikace je zdarma
●
možnost přepínání mezi různými typy kódování v rámci jednoho dokumentu
●
vysoký informační obsah
●
snadná konverze do jiných formátů
●
automatická kontrola struktury dokumentu
●
odkazy v rámci jednoho dokumentu, ale také napříč mezi dokumenty
4.2.2 DTD Jelikož je XML značkovací jazyk, je nutné mít definované jednotlivé značky – tagy. XML implicitně žádné neobsahuje, proto je nutné si nadefinovat vlastní. Tyto tagy je možné uložit v souboru DTD – Document Type Definition. Poté je možné automaticky kontrolovat, zda vytvářený XML soubor odpovídá takto definovaným tagům. DTD ovšem neobsahuje možnost typové kontroly dat, což je problém zejména při zpracování dat databázového charakteru. V rámci jednoho dokumentu lze také použít více různých DTD pomocí jmenných prostorů – namespaces. Je tak možné kombinovat v jednom souborů data různého významu. Příklad jednoduchého DTD dokumentu:
(to,from,heading,body)>
(#PCDATA)>
(#PCDATA)>
(#PCDATA)> (#PCDATA)>
18
4.2.3 Syntaxe Efektivita využití XML je závislá na struktuře a integritě dokumentu. Proto by měly být splněny následující podmínky v každém dokumentu:
●
musí obsahovat právě jeden kořenový (root) element
●
jména elementů rozlišují velká a malá písmena
●
neprázdné elementy musí být ohraničeny startovacím a ukončovacím tagem
●
hodnoty atributů musí být uzavřeny v jednoduchých nebo dvojitých úvozovkách – opačný pár úvozovek může být použit uvnitř hodnot
●
každý element – kromě rootu – musí být obsažen v jiném elementu
4.3 Datové soubory – Freemind 4.3.1 Popis Freemind používá pro ukládání map soubory s příponou .mm. V něm jsou data zapsána v interním formátu, který je založen na jazyce XML. Freemind do něj také pravidelně ukládá zálohy map, na kterých se právě pracuje. Formát je dobře čitelný také pro člověka, protože stromová struktura myšlenkové mapy je téměř přesně promítnuta do souboru. Na rozdíl od XML dokumentu v datovém souboru Freemindu není XML hlavička. Také chybí definice značek v DTD dokumentu, tagy jsou definovány přímo v jádře Freemindu. Znaky, které nejsou obsaženy ve standartní sedmibitové ASCII sadě, jsou uloženy ve formě svého číselného kódu. 4.3.2 Tagy Freemind má názvy značek uloženy přímo v jádře, proto je nelze nijak externě měnit. To ani není třeba, neboť tagy jsou pojmenovány jednoznačně. Lze je rozdělit na párové, nepárové a párové i nepárové.
19
4.3.2.1 Párové tagy
●
map – root tag, uzavírá v sobě všechny ostatní tagy - atributy: ●
●
VERSION – verze mapy, shodná s verzí Freemindu, která mapu vytvořila
hook – uzavírá v sobě tagy definující poznámku u daného uzlu - rodičovský uzel: node - atributy: ●
●
NAME – cesta k souboru, kde jsou uloženy nastavení týkající se poznámek
text – obsahuje text poznámky - rodičovský uzel: hook
4.3.2.2 Nepárové tagy
●
icon – definuje použitou ikonu u uzlu - rodičovský uzel: node - atributy: ●
●
BUILTIN – název použité ikony definovaný v jádře
arrowlink – definuje grafický link mezi dvěma uzly - rodičovský uzel: node - atributy: ●
DESTINATION – ID cílového uzlu
●
ENDARROW – definuje zobrazení šipky u cílového uzlu
●
STARTARROW – definuje zobrazení šipky u počátečního uzlu
●
ID – identifikátor grafického linku
●
STARTINCLINATION – souřadnice druhého bodu tečny křivky procházející startovním uzlem
●
ENDINCLINATION – souřadnice druhého bodu tečny křivky procházející koncovým uzlem
●
font – definuje změnu použitého písma od daného bodu - rodičovský uzel: node 20
- atributy: ●
NAME – název fontu
●
SIZE – velikost písma
4.3.2.3 Párové i nepárové tagy
●
node – nejdůležitější tag, který obsahuje informace o jednom uzlu mapy – informace o uzlu jsou obsaženy v atributech – nepárový, pokud se jedná o list – párový, pokud má potomky; ty v sobě uzavírá - rodičovský uzel: map (pouze pro kořenový uzel mapy), node - atributy: ●
ID – jednoznačná identifikace uzlu pro potřeby odkazů
●
CREATED – čas vytvoření uzlu ve formátu Java Timestamp
●
MODIFIED – čas poslední úpravy uzlu ve formátu Java Timestamp
●
TEXT – řetězec zobrazený v daném uzlu
●
POSITION – relativní pozice uzlu vůči sousedům
●
LINK – obsahuje řetězec, na který je odkazováno hyperlinkem; nejčastěji ID uzlu
●
COLOR – definuje barvu písma
●
FOLDED – příznak toho, zda jsou poduzly rozbaleny či nikoliv
●
STYLE – definuje styl použitý pro daný uzel
Java Timestamp je číslo, které obsahuje počet milisekund od 1. ledna 1970, 00:00 GMT.
4.4 Datové soubory – MindManager 4.4.1 Popis MindManager poskytuje pro ukládání map a dalších dokumentů mnoho možností. K dispozici je také velké množství formátů pro export. Standartním výstupem je soubor s příponou .mmap. Jelikož se ale jedná o interní binární formát MindManageru, nelze jej použít pro další práci. Myšlenkovou
21
mapu lze také uložit jako template do souboru .mmat a použít ji později pro další tvorbu. Nejzajímavější volbou je uložení mapy ve formátu XML – soubory .xmmap či .xml. Nevýhodou je, že DTD soubory jsou uloženy na serverech společnosti Mindjet a otevření mapy ve formátu XML tak vyžaduje připojení k internetu. 4.4.2 Tagy XML soubor s uloženou mapu lze rozdělit na 5 hlavních částí, které jsou vždy uzavřeny v příslušném párovém tagu. Jednotlivé skupiny jsou:
●
OneTopic
●
Relationships
●
StyleGroup
●
MapViewGroup
●
DocumentGroup
Pro potřeby převodu mapy do jiného formátu je důležitá zejména skupina OneTopic, která obsahuje hlavní strukturu mapy a informace o uzlech. Na tuto část se tedy zaměřím především, pro ostatní skupiny uvedu stručný popis. 4.4.2.1 OneTopic Hlavní skupina, ve které je uložena struktura mapy. Obsahuje informace o uzlech, jejich vztazích a obsahu. Nejdůležitější tagy jsou:
●
ap:Topic – uzavírá v sobě všechny tagy týkající se daného uzlu - rodičovský uzel: ap:OneTopic, ap:SubTopics - atributy: ●
0Id – jednoznačná identifikace uzlu v rámci mapy – používá se především pro potřeby odkazování na uzel – je uložen ve formě řetězce 16 znaků, který je zakódován v base64 kódování
●
ap:SubTopics – uzavírá v sobě všechny potomky daného uzlu - rodičovský uzel: ap:Topic 22
●
ap:Text – informace o textu uloženém v uzlu - rodičovský uzel: ap:Topic - atributy:
●
●
PlainText – vlastní řetězec znaků
●
ReadOnly – příznak možnosti měnit text
ap:Font – určení fontu použitého k zobrazení textu - rodičovský uzel: ap:Text
●
ap:NotesGroup – uzavírá v sobě informace o poznámce k uzlu - rodičovský uzel: ap:Topic
●
ap:NotesXhtmlData – obsahuje text v poznámce, který je formátován pomocí html - rodičovský uzel: ap:NotesGroup - atributy: ●
PreviewPlainText – text, který se zobrazí v bublině při najetí myší na odkaz k poznámce
●
ap:IconsGroup – uzavírá v sobě tagy, které se týkají ikon - rodičovský uzel: ap:Topic
●
ap:Icons – obsahuje všechny uzlu přidělené ikony - rodičovský uzel: ap:IconsGroup
●
ap:Icon – definuje použitou ikonu - rodičovský uzel: ap:Icons - atributy: ●
xsi:type – definuje, zda se jedná o jednu z přednastavených ikon či je to ikona externí
●
●
IconType – jméno použité ikony
ap:Hyperlink – nepárový tag, který definuje odkaz u uzlu - rodičovský uzel: ap:Topic 23
- atributy:
●
●
Hidden – příznak zobrazení odkazu
●
Name – identifikátor objektu, nejčastěji uzlu, na který je odkazováno
●
CachedName – název objektu, v případě uzlu se jedná o několik prvních znaků
ap:Offset – nepárový tag, který určuje posunutí uzlu vůči výchozí pozici - rodičovský uzel: ap:Topic
●
ap:FloatingTopics – uzavírá v sobě skupinu uzlů, které nemají žádné napojení na kořenové téma - rodičovský uzel: ap:Topic
4.4.2.2 Relationships Uvnitř párového tagu
jsou uzavřeny informace o grafických spojeních mezi uzly. Nejdůležitějšími informacemi jsou zde souřadnice bodů, jimiž prochází tečna křivky, která spojuje příslušné uzly. 4.4.2.3 StyleGroup Skupina, která zabírá největší část datového souboru. Obsahuje nastavení stylů, fontů, barev a mnoha dalších věcí. Uzly mapy jsou rozděleny do několika skupiny, většinou podle pozice v mapě, a jsou jim přiděleny příslušné styly. Můžeme tu najít tagy jako , , a podobně. 4.4.2.4 MapViewGroup Obsahuje informace o zobrazení mapy jako celku. Můžeme zde například najít údaj přiblížení (zoom).
4.4.2.5 DocumentGroup Důležitá skupina obsahující informace o dokumentu. V atributech tagu najdeme 24
shrnující údaje o mapě, například počet uzlů, počet vazeb či obrázků. Dále DocumentGroup obsahuje údaje o poslední změně v mapě – kdo a kdy ji provedl. Poslední důležitou částí je tag , ve kterém je uložena cesta k souboru, která programu říká, kam mapu implicitně ukládat.
25
26
Kapitola 5
Realizace
V této kapitole se zaměřím na popis implementace konverzního nástroje. Také uvedu stručný přehled použitých technologií.
5.1 Požadavky Cílem bylo vytvořit program, který by uměl převádět myšlenkové mapy vytvořené v aplikaci Freemind do formátu MindManageru. Také by měl umožňovat zpětnou konverzi. Nejdůležitějším prvkem by měl být převod struktury mapy a případných poznámek. Ikonám, vazbám a jiným grafickým prvkům měla být věnována až druhořadá pozornost. Program měl být také, pokud možno, co nejvíce platformově nezávislý a dát uživateli možnost vybrat si mezi verzí s grafickým rozhraním a spouštěním z konzole.
5.2 Postup implementace Program byl realizován formou projektu. Byly stanoveny kontrolní body, do kterých měla být hotova daná část implementace. Tyto kontrolní body se dařilo úspěšně plnit. Nejdříve jsem 27
zanalyzoval jednotlivé datové soubory, abych vybral technologie, které by bylo vhodné použít pro realizaci. Původně jsem chtěl data ze souborů zpracovávat proudově, to se ale ukázalo jako nešikovné, proto jsem tuto cestu opustil a rozhodl se použít objektový model načtených dat. Původně bylo v plánu zahrnout do převodu také ikony, grafické odkazy a hyperlinky. Byl jsem ale nucen zúžit množinu konvertovaných prvků, neboť se nedařilo převod regulérně naprogramovat. Nakonec se podařilo program úspěšně dokončit tak, aby vykonával primární požadované funkce.
Obrázek 5.1: Ganttův diagram projektu
5.3 Použité technologie Z důvodu požadavku platformové nezávislosti jsem pro implementaci vybral programovací jazyk Java. V rámci Javy jsem použil mnoho knihovních tříd, z nichž nejdůležitější byl DOM. Pro práci jsem použil vývojové prostředí Netbeans 5.0. 5.3.1 Java 1.5.0 Java je objektově orientovaný programovací jazyk, který vyvinula firma Sun Microsystems. Vyznačuje se, na rozdíl od C++, poměrně snadným použitím, vysokou bezpečností a platformovou nezávislostí. Program napsaný v Javě může běžet na každém zařízení, kde je přítomno JRE (Java Runtime Environment), které zahrnuje interpret Javy a standartní knihovny. 5.3.2 DOM API Java DOM API pro XML je syntaktický analyzátor, který používá ke zpracování XML objektový model. Vytvoří v paměti strom objektů, které reprezentují jednotlivé uzly. S těmito uzly se dá poté podle potřeby pracovat a následně opět uložit do XML dokumentu. 28
5.3.3 Netbeans IDE 5.0 Netbeans je integrované vývojové prostředí, které je vyvíjeno jako open-source a je zdarma. Poskytuje plný komfort při psaní programů v Javě, ale poradí si i s jinými jazyky. Díky možnosti instalace pluginů skýtá velké možnosti rozšíření.
5.4 Popis implementace 5.4.1 Načtení souboru Výběr souboru probíhá v každé verzi rozdílně. V textové verzi je cesta k souboru předána jako parametr při spouštění programu, zatímco v grafické verzi výběr souboru probíha pomocí objektu třídy FileChooser z knihovny Swing. U daného souboru je poté zjištěna přípona a podle té se program větví ke správné třídě, která jej zpracuje. 5.4.2 Společné části zpracování souboru Vstupní soubor je zpracován DOM parserem, který vytvoří stromovou strukturu objektů, reprezentující jednotlivé uzly. Následně se ze seznamu vyřadí uzly, které nebudou převáděny. Poté proběhne rekurzivní průchod stromem uzlů a podle jejich názvu, hodnot a pozice ve stromu se utvoří výstupní řetězec, který je zapsán do souboru pomocí io.BufferedWriter. Po skončení procesu je uživateli oznámeno úspěšné dokončení konverze. 5.4.3 Grafická verze Grafické rozhraní je vytvořeno samostatně v jedné třídě za použití knihovny Swing. Záznam o průběhu konverze se zobrazuje v okně do komponenty JTextArea. Po skončení konverze program stále beží, je tedy možno provést více konverzí za sebou bez jeho znovuspouštění.
29
5.4.4 Textová verze Záznam o průběhu konverze je zobrazen na standartní výstup. Program po proběhnutí konverze skončí, je tedy nutné jej opakovaně spouštět, pokud chceme provést převod více souborů. 5.4.5 Převod z .mm na .xml Před konverzí jsou ze stromu odstraněny všechny uzly, které se nejmenují „node“, „text“ a „hook“. Poté je do výstupního řetězce zapsána XML hlavička. Následně se rekurzivně prochází strom uzlů. Pokud program narazí na uzel se jménem „node“, zapíše do výstupního řetězce tag se vším, co k němu patří. Také je vygenerována nová hodnota atributu OId. Při průchodu uzly „text“ a „hook“ se zpracuje poznámka k uzlu. Po dosažení konce listu uzlů se vytvoří nový soubor s příponou .xml, do kterého se zapíše výstupní řetězec. 5.4.6 Převod z .xml na .mm Před konverzí jsou ze stromu odstraněny všechny uzly, které se netýkají přímo uzlů a poznámek. Poté se opět rekurzivně prochází strom uzlů. Při zpracování uzlu „ap:Topic“ se do výstupního řetězce zapíše nový tag <node> s příslušnými atributy. Při průchodu uzlem „ap:NotesGroup“ se zapíše poznámka ve správném formátu. Po dosažení konce listu uzlů se opět vytvoří nový soubor s příponou .mm, do kterého se zapíše výstupní řetězec.
30
Kapitola 6
Testování
6.1 Popis testovací mapy Pro účely otestování funkčnosti jsem vytvořil jednoduchou mapu, která ale obsahuje všechny prvky, které jsou předmětem konverze. Obsahuje také ikony přidělené uzlům a grafické odkazy mezi tématy, aby bylo možno zjistit připadné chyby při odstraňování těchto prvků při konverzi. Obsah tagu ap:OneTopic testovací mapy vytvořené v MindManageru:
31
poznamka u2R
32
V grafické podobě vypadá mapa takto:
Obrázek 6.1: Testovací mapa vytvořená v MindManageru
6.2 Konverze do Freemindu Při konverzi do Freemindu se odstraní ikony u uzlu u2R a také grafický odkaz mezi uzly u2R a u1R2. Výsledná mapa:
Obrázek 6.2: Testovací mapa převedená do Freemindu
33
6.3 Zpětná konverze Pokud tuto mapu zkonvertujeme, dostaneme opět soubor pro MindManager. Výsledná mapa je podobná té počáteční, je ovšem bez ikon, grafických odkazů a veškerých stylů.
Obrázek 6.3: Výsledná mapa v MindManageru po dvou konverzích
Při konverzích tedy dochází ke ztrátě stylů a jiných grafických prvků, nicméně primární požadavky, a to převod struktury mapy a poznámek, jsou splněny.
34
Kapitola 7
Závěr
Cílem práce bylo zanalyzovat datové soubory užívané pro ukládání myšlenkových map aplikacemi Freemind a MindManager a poté implementovat konverzní nástroj mezi nimi. Jelikož jsou mapy ukládány ve formátu XML či jemu podobném, tak se s datovými soubory poměrně dobře pracovalo. Při realizaci převodníku jsem narazil na některé problémy, kvůli kterým se nepodařilo implementovat všechny původně zamýšlené funkce. Freemind a MindManager například odlišně realizují a zpracovávají ikony u uzlů a grafické odkazy mezi nimi, proto by byla konverze těchto prvků problematická, nicméně primární požadavky na program byly splněny. Konvertor bude jistě užitečným nástrojem pro všechny, kteří používají aplikace Freemind a MindManager pro tvorbu myšlenkových map. Možnosti pro rozšíření jsou velké. Cílem této práce bylo zrealizovat převod pouze primární struktury, neboť mapa může obsahovat celou řadu dalších objektů. Je tedy možné doplnit tuto jednoduchou aplikaci o další funkce, které by ještě rozšířily její využití. Také by bylo například možné použít program pro tvorbu online konverzní služby ve webovém prohlížeči.
35
36
Literatura [1] Toncar – článek o myšlenkových mapách. http://toncar.cz/Clanky/myslenkove_mapy1.html, stav
z 10. 5. 2010.
[2] Wikipedia – myšlenková mapa. http://cs.wikipedia.org/wiki/My%C5%A1lenkov%C3%A1_mapa, stav
z 10. 5. 2010.
[3] Wikipedia – mind map. http://en.wikipedia.org/wiki/Mind_map, stav
z 10. 5. 2010.
[4] Freemind – domovská stránka. http://freemind.sourceforge.net/wiki/index.php/Main_Page, stav
z 10. 5. 2010.
[5] ABCLinuxu – článek o myšlenkových mapách a Freemindu. http://www.abclinuxu.cz/clanky/recenze/myslenkove-mapy-a-aplikace-freemind-1, stav
z 10. 5. 2010.
[6] MindMaps – hlavní stránka. http://www.mindmaps.cz, stav
z 10. 5. 2010.
[7] Wikipedia – XML. http://cs.wikipedia.org/wiki/Extensible_Markup_Language, stav
z 10. 5. 2010.
[8] Sun Java – DOM. http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/package-summary.html, stav
z 10. 5. 2010.
[9] Source Code – base64 kodér. http://www.source-code.biz/base64coder/java/Base64Coder.java.txt, stav
37
z 10. 5. 2010.
38
Příloha A
Gramatiky
Zde uvádím vstupní gramatiky pro vybrané uzly datových souborů Freemindu a MindManageru.
A.1 Freemind MAPA -> <map MAP_ATTR> BLOK_UZLU MAP_ATTR -> version=“VERZE VERZE -> identifikator“ BLOK_UZLU -> UZEL BLOK_UZLU KONEC_UZLU KONEC_UZLU -> KONEC_UZLU -> e BLOK_UZLU -> e UZEL -> <node UZEL_ATTR UZEL_KONEC UZEL_TAGY UZEL_KONEC -> > UZEL_KONEC -> /> UZEL_ATTR -> ATTR UZEL_ATTR UZEL_ATTR -> e ATTR -> CREATED ATTR -> UZEL_ID ATTR -> LINK ATTR -> MODIFIED ATTR -> POSITION ATTR -> TEXT CREATED -> created=“CREATED_ID
39
CREATED_ID -> identifikator“ UZEL_ID -> id=“UZEL_ID_ID UZEL_ID_ID -> identifikator“ LINK -> link=“LINK_ID LINK_ID -> identifikator“ MODIFIED -> modified=“MODIFIED_ID MODIFIED_ID -> identifikator“ POSITION -> position=“POSITION_ID POSITION_ID -> identifikator“ TEXT -> text=“TEXT_ID TEXT_ID -> identifikator“ UZEL_TAGY -> TAG UZEL_TAGY UZEL_TAGY -> e TAG -> ARROWLINK TAG -> ICON TAG -> TAG_TEXT TAG_TEXT -> TAG_TEXT_ID TAG_TEXT_ID -> identifikator ICON -> IKONA -> builtin=“IKONA_ID IKONA_ID -> identifikator“ ARROWLINK -> <arrowlink LINK_ATTRS /> LINK_ATTRS -> LINK_ATTR LINK_ATTRS LINK_ATTRS -> e LINK_ATTR -> DESTINATION LINK_ATTR -> ENDARROW LINK_ATTR -> ENDINCLNATION LINK_ATTR -> LINK_ID LINK_ATTR -> STARTARROW LINK_ATTR -> STARTINCLINATION DESTINATION -> destination=“DESTINATION_ID DESTINATION_ID -> identifikator“ ENDARROW -> endarrow=“ENDARROW_ID ENDARROW_ID -> identifikator“ ENDINCLINATION -> endinclination=“ENDINCLINATION_ID ENDINCLINATION_ID -> identifikator“ LINK_ID -> id=“LINK_ID_ID LINK_ID_ID -> identifikator“ STARTARROW -> startarrow=“STARTARROW_ID STARTARROW_ID -> identifikator“ STARTINCLINATION -> startinclination=“STARTINCLINATION_ID STARTINCLINATION_ID -> identifikator“ keywords: map,version,node,created,link,id,modified,position,text,icon,builtin special symbols: <,>,,/>,=,“
A.2 MindManager MAPA -> HLAVICKA CORE BLOK_UZLU HLAVICKA -> MAP_ATTR -> OId=“MAP_ID SCHEMATA MAP_ID -> identifikator“ SCHEMATA -> xmlns:ap="http://schemas.mindjet.com/MindManager/Application/2003" xmlns:cor="http://schemas.mindjet.com/MindManager/Core/2003"
40
xmlns:pri="http://schemas.mindjet.com/MindManager/Primitive/2003" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.mindjet.com/MindManager/Application/2003 http://schemas.mindjet.com/MindManager/Application/2003 http://schemas.mindjet.com/MindManager/Core/2003 http://schemas.mindjet.com/MindManager/Core/2003 http://schemas.mindjet.com/MindManager/Delta/2003 http://schemas.mindjet.com/MindManager/Delta/2003 http://schemas.mindjet.com/MindManager/Primitive/2003 http://schemas.mindjet.com/MindManager/Primitive/2003" CORE -> BLOK_UZLU -> UZLY UZLY -> UZEL UZLY UZLY -> e UZEL -> PODUZLY TEXT NOTES ICONS HYPERLINK UZEL_ATTR -> OId=“UZEL_ID UZEL_ID -> identifikator“ PODUZLY -> UZLY PODUZLY -> e TEXT -> TEXT_ATTR -> PlainText=“TEXT_ZBYTEK TEXT_ZBYTEK -> identifikator“ ReadOnly=“TRUEFALSE TRUEFALSE -> true“ TRUEFALSE -> false“ NOTES -> e NOTES -> identifikator“>POZN POZN -> identifikator
ICONS -> e ICONS -> IKONY IKONY -> IKONA IKONY IKONY -> e IKONA -> urn:mindjet:SmileyHappy"/> IKONA_ID ->urn:mindjet:Letter"/> IKONA_ID ->urn:mindjet:Mailbox"/> IKONA_ID ->urn:mindjet:Megaphone"/> IKONA_ID ->urn:mindjet:House"/> IKONA_ID ->urn:mindjet:FlagRed"/> IKONA_ID ->urn:mindjet:TrafficLightsRed"/> IKONA_ID ->urn:mindjet:Marker1"/> IKONA_ID ->urn:mindjet:Marker5"/> IKONA_ID ->urn:mindjet:Resource2"/> IKONA_ID ->urn:mindjet:ArrowRight"/> IKONA_ID ->urn:mindjet:Cellphone"/> IKONA_ID ->urn:mindjet:ExclamationMark"/> IKONA_ID ->urn:mindjet:QuestionMark"/> IKONA_ID ->urn:mindjet:ThumbsUp"/> IKONA_ID ->urn:mindjet:NoEntry"/> IKONA_ID ->urn:mindjet:Bomb"/> IKONA_ID ->urn:mindjet:Key"/> IKONA_ID ->urn:mindjet:Lightbulb"/> IKONA_ID ->urn:mindjet:Check"/> IKONA_ID ->urn:mindjet:Note"/> IKONA_ID ->urn:mindjet:ArrowLeft"/> IKONA_ID ->urn:mindjet:Book"/> IKONA_ID ->urn:mindjet:MagnifyingGlass"/> IKONA_ID ->urn:mindjet:Folder"/> HYPERLINK -> identifikator'])" CachedName="HYPERLINKNAME HYPERLINKNAME -> identifikator" />
41
special symbols: <,>,,/>,:,=," keywords:ap,map,OId,OneTopic,Topic,SubTopics,Font,Text,PlainText, True, False,ReadOnly,NotesGroup, NotesXhtmlData, PreviewPlainText,html,p,IconsGroup,Icons,Icon,IconType, SmileyHappy,Letter,Mailbox,Megaphone,House,FlagRed,TrafficLightsRed,Marker1,Marker5,Resource2,ArrowRight,C ellphone,ExclamationMark,QuestionMark,ThumbsUp,NoEntry,Bomb,Key,Lightbulb,Check,Note,ArrowLeft,Book,Mag nifyingGlass,Folder, Hyperlink, Url, CachedName
42
Příloha B
Uživatelská příručka
Uživatelská příručka slouží jako návod k použití jak pro textovou, tak i grafickou verzi.
B.1 Textová verze Program se spouští příkazem java -jar MMConv.jar. Jako parametr se zadává jméno souboru.
Obrázek B.1: Použití textové verze
B.2 Grafická verze Program spustíme souborem MMConvGUI.jar. Otevře se základní okno aplikace. V menu File -> Open nebo pomocí klávesové zkratky Ctrl – O vyvoláme dialog pro výběr vstupního souboru.
43
Obrázek B.2: Výběr souboru v grafické verzi Po výběru souboru stiskneme tlačítko Convert, které spustí převod. Po dokončení konverze program vypíše log zobrazující její průběh.
Obrázek B.3: Výpis logu průběhu konverze 44
Příloha C
Obsah přiloženého CD
/text /img /sw
Text práce ve formátu .pdf a .odt Obrázky k textu Zdrojové soubory
/bin
Binární soubory pro obě verze, včetně testovací mapy
/MMConv
Složka Netbeans projektu pro textovou verzi
/MMConvGUI
Složka Netbeans projektu pro grafickou verzi
45