Login | Register
My pages Projects Community openCollabNet


GEF stands for Graph Editing Framework. It is a library of Java classes that make it easier to develop new applications that involve editing diagrams and connected graphs. Graph editing is required for many software engineering and network engineering tools that deal with models of software or networks. Diagram or graph editing can also be used in applications such as home design, business process modeling, organization charts, family trees, or even games.

Java's Swing user interface library includes widgets for windows, buttons, text, menus, tables, and trees. These are used in every application that has a GUI. However, Swing does not provide support for diagram or graph editing.

The GEF vision is to produce a reusable framework for diagram and connected graph editing. The key qualities for the success of this project are:

  1. Simplicity: GEF should be easy for developers to learn and use. An experienced developer should be able to understand all of GEF's implementation in just 3 days.
  2. Usability: GEF must provide a user interface that is easy for end users
  3. Adaptability: GEF should be easily adaptable to a wide range of applications
  4. Scalability: GEF must be efficient on diagrams up to a thousand elements

Two important things set GEF apart from most other graph editing frameworks:

  • The main objects in GEF a fairly concrete and familiar to people who have experience using drawing tools. E.g., shapes, groups, selection handles, commands, and layers. In contrast, many other frameworks revolve around abstract concepts such as constraints or event handlers.
  • GEF provides both a simple, concrete representation of connected graphs, as well as a highly flexible graph model that is similar to Swing's TreeModel and TableModel. These "Model" classes allow existing application objects to be visualized as graphs without change. They also allow for multiple diagrammatic views of the same underlying set of objects.

GEF can be used to for both applications and applets. Although, some features (e.g., saving files) are only available in applications.