Hlavní navigace

Dia - expert na diagramy

Michal Krause 2. 12. 1999

Po několika letech programování jsem konečně pochopil, že není úplně ideální vymýšlet strukturu programu průběžně při jeho tvorbě a začal jsem si návrhy kreslit na papír. Žijeme ale v době informačních technologií, tak proč diagramy netvořit moderněji?

Program Dia (jehož název ve mně evokuje vzpomínku na dietní limonádu blíže nedefinovatelné chutě a barvy z totalitních dob) je tím pravým ořechovým pro tvorbu téměř libovolných diagramů a schémat. Inspirací byl autorům velice populární komerční program Visio z platformy Windows (jeho domovská stránka je zde, ale v NN ji neuvidíte, protože není ukončena tabulka, v Lynxu je to také dost bída, místo ALTů je všude něco jako home_head_new.gif – i tak může vypadat prezentace známého produktu :( ). Jak hodně se Dia svému vzoru blíží, to nemohu bohužel posoudit, neboť Visio neznám.


Funkce a uživatelské rozhraní

Paleta nástrojů Dia má grafické rozhraní prakticky stejné jako GIMP, což znamená, že sestává z více plovoucích oken. Trvale otevřené budete mít asi jenom dvě – paletu s nástroji a vlastní diagram. Při tvorbě složitějších schémat se vyplatí využívat schopnosti programu organizovat prvky do vrstev a tím pádem přibude paleta vrstev. Prakticky posledním dialogem v programu jsou vlastnosti objektu. Problém je, že tento dialog se nepřizpůsobuje právě vybranému prvku, takže nemá cenu ponechávat jej otevřený. Ostatně toto okno se objeví vždy po dvojím kliknutí na objekt, lze ho tedy vyvolat velice snadno bez nutnosti pustit myš.

Paleta nástrojů má tři části. První jsou klasické nástroje pro výběr objektu, zvětšení nebo posun výřezu a také pro vkládání základních primitiv – obdélníku, elipsy, čáry (tvořenou buď dvěma nebo více body), oblouku, pravoúhlé čáry, bitmapového obrázku a textu. Ve druhé části palety je několik záložek s prvky pro různé typy diagramů (k těm se dostaneme později). Poslední část tvoří atributy objektů – barva popředí a pozadí, tloušťka, typ a zakončení čar.

Další funkce se ukrývají na pravém tlačítku myši. Dia rovněž umožňuje geniálním způsobem (známým právě z GIMPa) definovat uživatelské horké klávesy. Stačí pouze umístit kurzor v menu na některou položku a pak stisknout požadovanou kombinaci kláves. Toť vše.

Diagram se tvoří skládáním z objektů, které lze rozdělit na dva typy: vlastní prvky a spojnice mezi nimi. Pro objekty obou typů platí to, že obsahují jeden nebo více kontaktních bodů. Umístíte-li kontaktní bod spojnice na kontaktní bod prvku, oba objekty se slepí a přesun nebo modifikace jednoho z nich pak ovlivňuje ten druhý. Kliknutím na spojnici a následným přetažením jejího kontaktního bodu lze spoj opět jednoduše zrušit. Tento způsob tvorby diagramů je celkem intuitivní a efektivní. Při vhodné volbě typu spojnic lze pak snadno přesouvat prvky v diagramu a doladit jeho vzhled třeba až po jeho dokončení. Pro každý prvek lze samozřejmě nastavovat množství parametrů, od barev přes fonty až po zarovnání textu.


Knihovny prvků a rozšiřitelnost

K programu (alespoň verze 0.81) je přibaleno sedm knihoven prvků, které jsou dostupné právě přes ony zmiňované záložky na nástrojové paletě. Jsou to knihovny ER (o té vážně netuším, k čemu je dobrá), Flowchart (klasické vývojové diagramy, tyto prvky jsem použil v příkladu), FS (opět netuším, k čemu je určena), Network (prvky pro znázorňování topologií počítačových sítí), Sybase (produkty Sybase, pro navrhování struktur datových skladů a podobně), Circuit (základní symboly pro navrhování elektrických obvodů) a UML (což je jazyk pro grafický popis objektově orientovaných projektů).

To už je docela široká nabídka. Dia ovšem počítá s dalším rozšiřováním. Další prvky totiž lze tvořit pomocí jazyku SVG, což je v podstatě popis vektorových obrázků v XML. Zní to složitě, ale není to tak hrozné. Následující příklad ukazuje, jak vytvořit prvek „přeškrtnutá nula“ s připojeným polem pro vstup textu a kontaktními body na obou koncích přeškrtnutí:

<?xml version="1.0"?>

<shape xmlns="http://www.daa.com.au/~james/dia-shape-ns"
        xmlns:svg="http://www.w3.org/Graphics/SVG/svg-19990730.dtd">
    <name>Xyz - Nula</name>
    <description>Skrtnuta nula</description>
    <connections>
        <point x="1" y="-1" />
        <point x="-1" y="1" />
    </connections>
    <textbox x1="-3" y1="1.5" x2="3" y2="3" />
    <svg:svg width="1.0" height="1.0">
        <svg:circle cx="0" cy="0" r="1" style="fill: none" />
        <svg:line x1="1" y1="-1" x2="-1" y2="1" />
    </svg:svg>
</shape>

Tímto způsobem lze tvořit i mnohem složitější objekty (viz třeba již zmiňovaná knihovna Circuit). Dia tedy může snadno uspokojit široké spektrum požadavků.


Internacionalizace

Podpora češtiny je prvním kamenem úrazu. Program má problémy se vstupem mrtvých kláves a rovněž tisk zlobí. Obojí je naštěstí relativně snadno řešitelné. K akceptování českých znaků program donutí knihovna libI18Nforce a tisk napraví ogonkify (pro tento účel se spouští takto: ogonkify -ATH -N).
I když lze tyto problémy obejít, je to škoda a Dia má za to u mě body dolů.

Dia rovněž podporuje lokalizaci prostředí pomocí katalogů, ale čeština mezi překlady zatím není. Snad v budoucnu.

Diagram
Vzorový diagram



Co se mi nelíbilo

Dia se mi hodně líbí, ale našel jsem pár věcí, které mě vůbec nepotěšily:

  • Nemožnost měnit hromadně parametry objektů – je docela otravné, když měníte font u dvaceti nebo více prvků
  • Pravoúhlá spojnice (zigzagline) zlobí – když poslední segment vede zprava doleva, kreslí se šipka obráceně. Obyčejná více-bodová čára naštěstí tímto nešvarem netrpí.
  • Dialog s vlastnostmi objektu se nemění podle vybraného prvku
  • Dia občas spadne – ne příliš často, ale stejně doporučuji pravidelně ukládat
  • Chybějící dokumentace – na všechno musíte přijít sami, naštěstí je program hodně intuitivní (nejdéle mi trvalo zjistit, že na prostředním tlačítku myši je ukryto kontextové menu)


Závěrem

Dia je dle mého názoru aplikace, která se momentálně pohybuje na rozhraní mezi beta verzí a stabilní aplikací. Má sice několik much (které by snad neměl být problém vychytat), ale ty vyvažuje dobrá funkčnost, příjemné ovládání a v neposlední řadě i inteligentně navržená struktura programu, zaručující snadnou adaptabilitu na specifické použití.

P.S. diagram, který je na obrázku, si můžete stáhnout zde (postscriptový výstup). Jde o notoricky známý postup při řešení problémů :)

Našli jste v článku chybu?

13. 9. 2006 17:52

Ano, to jsem chtěl také říci - chápu, že se nikdo nevyzná ve všem ale říci o knihovně ER že nevím k čemu slouží mi znělo velmi divně - jak už sám její název napovídá je to knihovna pro konstrukci tzv. E-R Diagramů - z anglického Entity-Relation, který je používán pro návrhy DB.

Jinak článek je naprosto bezvadný!

29. 3. 2005 14:58

Martin (neregistrovaný)
No jo, ale neni to GPL. Bratru za 5500 EUR (http://www.metacase.com/mwb/prices.html).
DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Lupa.cz: UX přestává pro firmy být magie

UX přestává pro firmy být magie

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Podnikatel.cz: Vládu obejde, kvůli EET rovnou do sněmovny

Vládu obejde, kvůli EET rovnou do sněmovny

DigiZone.cz: NG natáčí v Praze seriál o Einsteinovi

NG natáčí v Praze seriál o Einsteinovi

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Lupa.cz: Avast po spojení s AVG propustí 700 lidí

Avast po spojení s AVG propustí 700 lidí

Podnikatel.cz: EET zvládneme, budou horší zákony

EET zvládneme, budou horší zákony

Vitalia.cz: Baletky propagují zdravotní superpostel

Baletky propagují zdravotní superpostel

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Lupa.cz: Není sleva jako sleva. Jak obchodům nenaletět?

Není sleva jako sleva. Jak obchodům nenaletět?

Lupa.cz: Babiš: E-shopů se EET možná nebude týkat

Babiš: E-shopů se EET možná nebude týkat

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

120na80.cz: Jak oddálit Alzheimera?

Jak oddálit Alzheimera?

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0