
The most exciting feature I added was a new open / close algorithm. Now, when a container is opened, it moves the nodes below it out of the way. I attempt to put the nodes back when the container closes again. Moving nodes out of the way (without really altering the graph) is considered a pretty hard problem in graph drawing, but since I knew my nodes always grow downward, it made it somewhat easier for me.

Finally I added a fisheye feature. Now, if enabled, when you mouse over a small node you can have it zoom into focus. Using this technique, I chose only to show the icons on the small nodes, but on hover you get the full text. (In this screenshot I moved my mouse over the centre node in top container).

The snippet used to create these screenshots is less than 70 LoC (and if I was a more clever programmer I could probably do it in less than 40).
It was a pretty busy week with a lot of late nights and I haven't seen my wife and daughter much, so I think I will head home and enjoy the nice west coast weather we have been receiving.
5 comments:
awesome...
if you double click a "container" does it zoom in and take focus (ie., you only see what's in the container and keep drilling down)?
Cool stuff! Have fun on your break, and don't bring the CPU. The wife will kill you ;)
Chris, zooming in is the plan. right now a container cannot be added to a container, so you don't really need to zoom. But I will add this shortly.
I think the nested containers and zooming will be a bit of work to get right. Queue this up next :)
Cool! Maybe this could eventually be used to port Creole ( http://www.thechiselgroup.org/creole ) to SWT/GEF?
Villane, :) I am actually part of the chiselgroup (I sit 5 feet from the main developer of Creole). This was our plan, when we first started creating Zest, but other research interests kept getting in the way :)
Awesome !
Post a Comment