Next month at EclipseCon I'll be continuing the saga of the Graph Editor. This story actually starts back in 2005, when I was working on the very first graphical editor for jBPM 3. I was using the Eclipse Graphical Editing Framework (GEF) and became very frustrated with the lack of good documentation. So for my own records, I kept notes as to how the application was put together. The result served as the base for a number of talks and tutorials on GEF at the EclipseWorld (2005, 2006 and 2007) and EclipseCon (2006, 2007 and 2008) conferences. Should you be interested, I have attached the last version of this tutorial that I presented at EclipseCon 2008.
In the meantime, two other frameworks have emerged in the Eclipse realm that can be used to create such rich graphical editors. The Graphical Modeling Framework (GMF) has been around for a very long time even and is well matured. It builds on top of GEF and the Eclipse Modeling Framework (EMF). It also has a powerful tools suite that can be used to quickly model and generate your application. Graphiti is a bit more recent and is currently in incubation at Eclipse. Graphiti also builds on top of GEF and uses EMF to store its graphical details. EMF is also the preferred way to serialize the semantic model.
During the previous year, I have been using GMF intensively while forging a prototype BPMN2 editor for jBPM 5. Later that same year I was asked to investigate Graphiti as a candidate technology for a BPMN2 editor. Just like 6 years ago, I have kept notes on the use of both of these technologies. It was only a small step to turn these notes into a presentation comparing both technologies. So I am happy to have been accepted to share this experience at the upcoming EclipseCon conference.
If you expected to see the results of the comparison in this post, I'll have to disappoint you. I will probably write up an article later on but in the meantime I'll leave the scoop to the EclipseCon attendees. The advice is to register for EclipseCon and attend my session on Tuesday March 22nd at 2:30 pm. I hope I will see a lot of you!