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.