Prefuse is a very nice visualization toolkit. It is written in Java, it uses Java2D APIs to draw nodes, edges, and other visual items. It also handles events, supports animations, and other things you need to make the visualization become interactive.
The visualization display is implemented on top of JComponent. So it is very easy to embed it on another application, like what I did in LuaDeskSpot (source).
Okay, enough for the introduction. The purpose of this post is I want to show you how to use Prefuse through Jython. Yes, to make Prefuse (er.. Java, actually) scriptable!
Prefuse is a very nice visualization toolkit. It is written in Java, it uses Java2D APIs to draw nodes, edges, and other visual items. It also handles events, supports animations, and other things you need to make the visualization become interactive.
The visualization display is implemented on top of JComponent. So it is very easy to embed it on another application, like what I did in LuaDeskSpot (source).
Okay, enough for the introduction. The purpose of this post is I want to show you how to use Prefuse through Jython. Yes, to make Prefuse (er.. Java, actually) scriptable!
Prefuse is a very nice visualization toolkit. It is written in Java, it uses Java2D APIs to draw nodes, edges, and other visual items. It also handles events, supports animations, and other things you need to make the visualization become interactive.
The visualization display is implemented on top of JComponent. So it is very easy to embed it on another application, like what I did in LuaDeskSpot (source).
Okay, enough for the introduction. The purpose of this post is I want to show you how to use Prefuse through Jython. Yes, to make Prefuse (er.. Java, actually) scriptable!
Setelah semalem nyobain Jython, jadi kepikiran tuk make Prefuse dari Jython. Ternyata bisa! Utak-atik dikit lagi, dan jadilah sesuatu yg lebih menarik. Silakan lihat di screencast berikut =P
Setelah semalem nyobain Jython, jadi kepikiran tuk make Prefuse dari Jython. Ternyata bisa! Utak-atik dikit lagi, dan jadilah sesuatu yg lebih menarik. Silakan lihat di screencast berikut =P
Bikin sesuatu yg bernama LevelLayout. Terpaksa dibikin berhubung NodeLinkTreeLayout yang diharapkan tuk bekerja ternyata tidak bekerja. Yaa.. sekalian lah.
Bikin sesuatu yg bernama LevelLayout. Terpaksa dibikin berhubung NodeLinkTreeLayout yang diharapkan tuk bekerja ternyata tidak bekerja. Yaa.. sekalian lah.
Sebelum ngerjain tesis, mari kita pemanasan dulu =P
Gambar di atas adalah cuplikan dari aplikasi kecil yang memvisualisasikan dependensi paket-paket di Ubuntu Intrepid Ibex (mudah2an sih ngga salah menyusun data dependensinya =P) Dibuat pake Java dengan bantuan Prefuse.
Kalau mau nyoba2, silakan donlod aplikasinya lalu coba2 masukkan sebuah nama paket. Kalau udah muncul di layar, klik nama paketnya supaya paket-paket lain yg terhubung ikutan muncul.
$ cd p
$ java -Xmx512M -cp .:prefuse.jar id/web/fajran/vis/ubuntupkg/Main orig/
Yayaya.. memang sangat berat! Seluruh data paket dibaca dan masuk ke memory. Selain itu, proses layouting dg Force Directed Layout emang berat, apalagi kalau datanya banyak. Walau sebenarnya diharapkan untuk tidak terlalu berat2 amat berhubung tidak seluruh data ditampilkan. Namun sepertinya Prefuse masih bermasalah dalam hanya-mengutak-atik-data-yang-tampil-saja.
Kalau mau pake subset-tidak-lengkap data yang lebih kecil, coba ganti orig/ menjadi small/
Contoh paket yang lumayan dapat dilihat dalam data kecil ini adalah pinot, jadi coba cari paket tsb.
Source code? err.. berhubung aplikasi ini beneran tuk icip2 Prefuse, saya gak nyimpen source code nya xD ada sih, tapi udah babak belur di sana sini. Nanti aja kalo saya udah gapé pake Prefuse, saya bikin lagi aja yg baru =P
Sebelum ngerjain tesis, mari kita pemanasan dulu =P
Gambar di atas adalah cuplikan dari aplikasi kecil yang memvisualisasikan dependensi paket-paket di Ubuntu Intrepid Ibex (mudah2an sih ngga salah menyusun data dependensinya =P) Dibuat pake Java dengan bantuan Prefuse.
Kalau mau nyoba2, silakan donlod aplikasinya lalu coba2 masukkan sebuah nama paket. Kalau udah muncul di layar, klik nama paketnya supaya paket-paket lain yg terhubung ikutan muncul.
$ cd p
$ java -Xmx512M -cp .:prefuse.jar id/web/fajran/vis/ubuntupkg/Main orig/
Yayaya.. memang sangat berat! Seluruh data paket dibaca dan masuk ke memory. Selain itu, proses layouting dg Force Directed Layout emang berat, apalagi kalau datanya banyak. Walau sebenarnya diharapkan untuk tidak terlalu berat2 amat berhubung tidak seluruh data ditampilkan. Namun sepertinya Prefuse masih bermasalah dalam hanya-mengutak-atik-data-yang-tampil-saja.
Kalau mau pake subset-tidak-lengkap data yang lebih kecil, coba ganti orig/ menjadi small/
Contoh paket yang lumayan dapat dilihat dalam data kecil ini adalah pinot, jadi coba cari paket tsb.
Source code? err.. berhubung aplikasi ini beneran tuk icip2 Prefuse, saya gak nyimpen source code nya xD ada sih, tapi udah babak belur di sana sini. Nanti aja kalo saya udah gapé pake Prefuse, saya bikin lagi aja yg baru =P