Skip to content

Month: May 2011

The Quest for the Perfect Java Graph Framework

After testing JGraphX for a couple of days and reading some of its code, I have come once again to the conclusion that while it is a good framework, it still has some problems, doesn’t have some features I need (features which I can implement since I have the source code, but oh, is this source code lacking comments!). JGraphX is also lacking good tutorials, which I think is really sad.
After my conversion to eclipse, I decided to explore eclipse-based solutions. Many times I have tried to learn about the Eclipse Modeling Framework (EMF) using tutorials from the Eclipse site but these tutorials are not updated to match the new versions of Eclipse, so after doing step 1 and 2 of the tutorial suddenly you find that the tutorial asks you to do something that is not supported anymore, or that the wizard’s dialog boxes have changed. But still, from using Eclipse UML editors (Topcased for example), you can see that there frameworks have very high potential.
Since I left my old job to pursue a PhD, the time available to search for good tutorials has increased, with good results. The search was first narrowed to more specific projects, starting with the Eclipse Graphical Editing Framework (GEF). First, there is Paul B’s Eclipse Whiteboard, a great starting point. From here I redirected to a presentation given in EclipseCon2008 that includes source code which gives a step by step implementation of a simple graph editor. Really nice. Funny thing is that this presentation also says that learning EMF is problematic since there is not enough material in the internet to learn from (now I feel less dumb).
There is another interesting (and relatively new) Eclipse project is the Graphiti project, which also a diagram editor and visualization framework and seems to be a lot simpler than GEF. They also have a good tutorial that is included in their Eclipse package.
So my quest continues. If you have any knowledge that can help me on this quest, please leave a note.

2012/03/01 Update – There is a very interesting graph visualization platform called Gephi. While I haven’t investigated it yet, it looks very promising for people who just want visualization without editing. There is also a java figure editor called jfig, which seems to have a number of interesting qualities, but since it is not open source I am not able to investigate it nor use it for a long time. But it’s here if you want to check it out.