Alex headshot

AlBlue’s Blog

Macs, Modularity and More

EclipseCon GMF, GEF and EMF - WTF?

Eclipsecon Conference 2006 Eclipse

I've just sat through an hour's presentation on "Introduction to GMF" at EclipseCon. The problem is that I know about as much at the end as I did at the beginning. I had a feeling that it wouldn't work out well when the presenter was doing a demo and asked how many people ran the GMF tutorial (a couple of hands) and then proceeded to assume that everyone knew what GMF was, and suggested that we ran the GMF tutorial to find out what it was all about. Perhaps I misunderstood the purpose of the presentation, and it was "Introduction to GMF who have already run the GMF tutorial."

I don't necessarily thing it was a bad talk; but it was certainly not an introduction; it was a demonstration of how you can add OCL features to generated EMF models (with GEF views) and how it looks in a view. For people who'd never heard the terms before, it seemed to be way outside of the scope of an introduction. In any case, here's the low-down on some of the acronyms if you need to find out more about it:

  • GEF is the Graphical Editor Framework. Its purpose is to provide a set of libraries upon which it's possible to build graphical editors, much like the TextEditor framework is something upon which many different IDE editors can be built.
  • EMF is the Eclipse Modelling Framework. Its purpose is to allow data models to be created and then stored in an 'ecore' file. Although there's no reason why it couldn't be edited manually, EMF provides editors that can edit it for you. These editors can be graphical, but they don't have to be.
  • GMF is the Graphical Modelling Framework. Its purposes is to translate existing EMF models, and utilise GEF to build a graphical editor automatically based on your content. As well as simple editing, there are validation and verification steps that allow you to say what valid values are (e.g. for creating relationships between certain graphical components).

That's an introduction to GMF. The introduction to GMF was more an up-to-date demonstration of where the project is, and a brief bungy into some of the coding that was generated. Mind you, they did give me pointers to the tutorials, and the cheat-sheets in the tutorial apparently allows you to generate a GMF editor. So there was a mismatch between the expectation of the presentation and what I needed to get from it; but it gave me enough of a link to want to find out more.