The Eclipse Graphical Modeling Framework (GMF) provides a rich infrastructure for implementing high-quality diagram-based editors for modeling languages underpinned by EMF. To implement a diagram based editor with GMF, developers need to construct and maintain a number of fine grained interweaved models that specify different aspects of the editor; GMF then consumes these models and generates an Eclipse plugin that realizes the editor.
Constructing and maintaining these models using the plain-vanilla tree-based editors provided by GMF is a tedious and error prone task, particularly for inexperienced developers. To lower the entrance barrier for new developers, in the context of the Modeling GMT Epsilon component (www.eclipse.org/gmt/epsilon/) we have implemented EuGENia. EuGENia is a tool that can generate all the fine-grained models needed for implementing a GMF-based editor directly from the Ecore model that describes the abstract syntax of the language, using high-level annotations. As such, EuGENia reduces the development and maintenance effort of a GMF editor significantly and makes GMF accessible even to inexperienced developers.
Although EuGENia provides an extensive set of annotations that support the most common scenarios, it does not provide a 1:1 mapping with GMF. To overcome this limitation and enable developers to exploit the full potential of GMF and implement editors of arbitrary complexity, EuGENia supports user-defined polishing transformations (http://epsilonblog.wordpress.com/2009/06/15/eugenia-polishing-your-gmf-editor/) which allow developers to tweak and polish the GMF models EuGENia produces by default, in a structured and reproducible manner.
This talk presents EuGENia through a comprehensive example that demonstrates the main annotations supported by the tool, as well as its polishing and customization mechanism.
Dimitrios Kolovos is a research associate at the University of York, and the lead for the Epsilon component of the Modeling GMT project. Dimitrios holds a PhD in Computer Science from the University of York and has several years of experience in designing and implementing software systems using – mainly – Java technologies (and often MDE).