The GMF Project: An Interview with Richard Gronback
In the first of a series of interviews and articles in the run up to the Eclipse Ganymede release on June 25th, I discussed the GMF project with Richard Gronback.
James Sugrue: For those unfamiliar with GMF, could you give a quick overview?
Richard Gronback: GMF makes it easier to construct graphical editors using the Graphical Editor Framework (GEF) where the underlying model is expressed using the Eclipse Modeling Framework (EMF). GMF provides a set of models and code generation templates that target a rich diagram runtime component to quickly get one started building their own graphical editor for domain-specific languages.
Sugrue: What's new in this release of GMF?
Gronback: A number of diagram-level enhancements were made in 2.1, including: large diagram image export, improved wrapping labels, group/ungroup functionality, layout improvements, palette improvements, keyboard support. On the tooling side, improvements to the code generation templates, and improved WYSIWYG graphical definition editor support, including a new form-based generation approach for property sheets and editors. Additionally, numerous bug fixes and migration to the modeling common build infrastructure were accomplished.
For advanced users of GMF, they really should take a look at the graphical definition editor. Not so much the editor itself, but the approach taken to extend GMF's capabilities using additional models and custom templates. Specifically, it leverages the new org.eclipse.gmf.formtk plug-in models to allow for the generation of form style property sheets used for wysiwyg editing of figures.
Additionally, the UML2 Tools component of the MDT project has extended GMF quite a bit to provide UML diagramming. These can be quite valuable for those looking for more examples of how to leverage GMF
Sugrue: Your long awaited book for GMF looks like it's near completion. Do you have a release date for it?
Gronback: Yes, it's wrapping up. The publisher has it and tells me it should be available on Safari "rough cuts" by the end of this month. The best-case availability will be in September, as I understand it. Of course, I still need to update some pieces based on developments late in this cycle.
Sugrue: Are there new examples and tutorials included in this release?
Gronback: GMF has no new examples or tutorials itself, but as the book content covers GMF, QVT Operational Mapping Language, and Xpand, I did create a number of new examples that span these projects (and EMF, of course). I plan to contribute the examples to the Modeling Amalgamation Project, as its focus is on cross-modeling functionality.
Sugrue: What do you see as the most important part of the Ganymede release?
Gronback: Well, just managing to get so many projects at Eclipse released at the same time is important enough ;). Seeing the Modeling package come to life as part of Ganymede is great, so between that and p2 it should be an interesting release indeed.
Sugrue: How did EclipseCon go for you this year?
Gronback: Doug put together a great program, and Bjorn did his usual stellar job of organizing the conference. So overall it was a great EclipseCon, particularly given the breadth of Modeling topics we had this year.
Sugrue: What is the future for GMF?
Gronback: GMF will continue to mature and provide enhanced flexibility in its model-driven capabilities. Improvements to the graphical editor being done now should make the creation of custom figures easier in the future. With e4's focus on web enablement, I suppose we can expect web-based diagramming support in the future as well.
Also, I expect the graphical syntax you can define with GMF will soon be complemented by textual syntaxes using the Textual Modeling Framework (TMF) project.
Sugrue: Are you working on any other Eclipse projects at the moment?
Gronback: I started the Amalgam project (short name for the Modeling Amalgam Project mentioned above) to improve the usability of the Modeling projects and components. The first task was to configure a Modeling package from the Eclipse Packaging Project (also mentioned above), and will next focus on some improved UI "glue" elements and additional package configurations.
From the larger Borland contributors to Eclipse, we are also working on the QVT Operational Mapping Language implementation within M2M, and the UML2 Tools component of MDT, which provides GMF-based diagramming for the UML. So, we're keeping busy.