Project Overview

What is GEF?

The Graphical Editing Framework (GEF) allows developers to create a rich graphical editor from an existing application model. GEF consists of 2 plug-ins. The org.eclipse.draw2d plug-in provides a layout and rendering toolkit for displaying graphics. The developer can then take advantage of the many common operations provided in GEF and/or extend them for the specific domain. GEF employs an MVC (model-view-controller) architecture which enables simple changes to be applied to the model from the view.

GEF is completely application neutral and provides the groundwork to build almost any application, including but not limited to: activity diagrams, GUI builders, class diagram editors, state machines, and even WYSIWYG text editors. The Logic Example, one of the provided examples, is pictured below.


What's Happening

R3.2 Development

R3.1 Development

R3.0 Maintenance

Get Involved
If you are interested in participating in the development of GEF, check out the developer's mailing list: gef-dev@eclipse.org.  Chat with people there about your problems and interests, and find out what you can do to help.
Features
org.eclipse.draw2d
  • Efficient layout and rendering support
  • Various figure and layout implementations
  • Borders
  • Cursors and Tooltip support
  • Connection anchoring, routing, and decorating
  • Multiple, transparent layers
  • Flexible coordinate systems
  • Overview window (thumbnail with scrolling)
  • Printing

org.eclipse.gef

  • Tools like Selection, Creation, Connection and Marquee tools 
  • A Palette for displaying those tools 
  • Handles for resizing objects and bending connections 
  • Two types of GEF Viewers (Graphical and Tree) 
  • A Controller framework for mapping the business Model to a View 
    • Plug-in policies for mapping interactions with the view to changes in the model 
    • Various implementations for showing feedback and adding selection handles 
    • Various request types and tools or actions that send these requests to the controllers 
  • Undo/Redo support via Commands and a CommandStack
Plug-ins

Runtime plug-ins
  • org.eclipse.draw2d - The Draw2d plug-in
  • org.eclipse.gef - The GEF plug-in (requires Draw2d)

ISV and example plug-ins

  • org.eclipse.draw2d.doc.isv - ISV integrated Help
  • org.eclipse.gef.doc.isv - ISV integrated Help
  • org.eclipse.gef.examples.shapes - The "Hello World" example editor.
  • org.eclipse.gef.examples.logic - Example editor showing nested containers, connections with custom anchor points, and multiple routing methods.

  • org.eclipse.gef.examples.flow - Example editor demonstrating the compound directed graph algorithm used to layout activity diagrams.

  • org.eclipse.gef.examples.text - Example editor demonstrating editing of "rich" text.

  • org.eclipse.gef.examples.ediagram - Example editor using EMF to provide a split "business" and "view" model.