Chmelej's Blog

Grafy v yEd

Published 23 Dec 20112 min read0 comments

yEd je univerzalni editor matematických grafu (ne koláčů z excelu), je zdarma a volně dostupný na http://www.yworks.com/en/products_yed_about.html.

Lze ho použít třeba na:

  • kreslení UML schemat
  • kreslení vývojových diagramu
  • kreslení workflow
  • navrhy počítačové sítě
  • zpřehlednění divokých struktúr, …

Momentálně mě zajímá ta poslední možnost, např mám tabulku rubrik a tabulku zavislostí mezi rubrikama a rád bych to „nějak“ graficky zobrazil. Takže jak dostat data z SQL tabulky do yEd? Jeden z formátů, které yEd podporuje, je TGF (viz. http://en.wikipedia.org/wiki/Trivial_Graph_Format ), vygenerovat data v tomto formátu je hračka, v groovy to muže vypadat takto:

    import groovy.sql.Sql  
    import cz.zs.groovy.Helper  
      
    Sql sql = Helper.newSqlInstance("etc/mmc-config.properties", this);  
      
    sql.eachRow("select * from rubriky",[]) { row ->  
        println "${row.RUBRIKA_ID} ${row.RUBRIKA_NAME}"  
    }  
    println "#"  
    sql.eachRow("select * from rubriky_tree",[]) { row ->  
        println "${row.NAD_ID} ${row.POD_ID} ${row.NAD} -> ${row.POD}"  
    }

Po spuštění mám data v textovém TGF souboru, který otevřu v yEd. Jelikož TGF neobsahuje žádné informace o rozložení uzlů ani jak mají vypadat, je to ihned po otevření celkem humus. Proto 1. krok může být “Tools/Fit Node to Label”, tím se roztáhnou obdelníčky podle velikosti textu. A dalším krokem bude nějaké hezčí rozmístění, těch samozřejmně může být víc, takže třeba „Layout/Organic“ a už je na co koukat. Pak je možné grafem procházet, hledat v něm, obravovat, … výsledek je dobré uložit ve formátu graphML (viz. http://en.wikipedia.org/wiki/GraphML ), který narozdíl od TGF umí uchovat i další informace.