Author: Dan Rubel, Jaime Wren & Eric Clayberg
Aimed at: Java programmers
Pros: Good coverage of Draw2D
Cons: Runs out of steam without explaining GEF framework adequately
Reviewed by: Harry Fairhead
If you want to use GEF to create graphical editors, is this the book you need?
This isn't a book every Java programmer will want to read. It is an introduction to the Graphical Editing Framework (GEF) in Eclipse. The GEF can be used to create drag-and-drop graphical editors that can be run in the Eclipse framework. This book doesn't explain anything about creating an Eclipse plug-in, so you need to read up on this topic if you plan is to create something that extends Eclipse - see my review of Eric Clayberg's Eclipse Plug-ins, a new edition of which is due to be published in 2012.
GEF is composed of three parts - Draw2D, Zest and GEF - yes the project has the same name as one of the frameworks. The book starts off with a short overview of GEF, complete with examples of what you can do with it.
Then it moves on to consider Draw2D. This is where the tutorial which runs though the book begins. The authors use Draw2D to start a genealogy editor. Draw2D occupies the next seven chapters,as we work our way through figures, z-order, layout managers, connectors, layers, viewports etc. What this means is that Draw2D takes up about half of the book. You can argue that Draw2D isn't the most sophisticated part of GEF and so leaving only half of the book to cover the Zest and GEF frameworks isn't a good idea.
Chapter 8 discusses GEF models and Chapter 9 introduces Zest viewers. We reach GEF in Chapter 10 with an overview of the GEF plug-in. GEF is needed if you want to create drag-and-drop style editors and this is probably what most programmers will want to do. As GEF has an MVC structure, after an overview, Chapter 11 concentrates on the View then Chapter 12 describes how to turn the Genealogy diagram into a full editor. The final chapter looks at how to work with commands.
While the general concepts of how GEF works are described many of the specifics are glossed over and you are left to read the code to find out how to do things. After reading the last four chapters I really didn't have much idea how to work with GEF. I struggled to see how it was all supposed to work.
At the end of the day, if you are looking for a book explaining GEF, this is very much better than nothing at all. On the topic of Draw2D it is very good indeed, but it seems to run out of steam when it reaches the main topic for any programmer wanting to implement a full editor for some new graphical language or designer.
So a great book for beginning Eclipse programmer, but it doesn't cover enough to save you the headache of working a lot of things out for yourself.