EuGENia

EuGENia is a tool that automatically generates the .gmfgraph, .gmftool and .gmfmap models needed to implement a GMF editor from a single annotated Ecore metamodel. EuGENia provides high-level annotations that shield you from the complexity of GMF and lowers the entrance barrier for creating your first GMF editor. While EuGENia is very useful for getting started with GMF, it doesn't stop there and can be used all the way to the final polished version of your editor.

For example, from the following metamodel (in Emfatic - a convenience textual syntax for Ecore)

@namespace(uri="filesystem", prefix="filesystem")
package filesystem;
 
@gmf.diagram
class Filesystem {
    val Drive[*] drives;
    val Sync[*] syncs;
}
 
class Drive extends Folder {
 
}
 
class Folder extends File {
    @gmf.compartment
    val File[*] contents;
}
 
class Shortcut extends File {
    @gmf.link(target.decoration="arrow", style="dash")
    ref File target;
}
 
@gmf.link(source="source", target="target", style="dot", width="2")
class Sync {
    ref File source;
    ref File target;
}
 
@gmf.node(label = "name")
class File {
    attr String name;
}
				

it can automatically generate the following GMF editor

Presentation

Resources