What is GEF
Why should I use GEF?
GEF enables developers to easily create rich graphical editors and views within Eclipse. GEF has been used to build a variety of applications, including state diagrams, activity diagrams, class diagrams, GUI builders for AWT, Swing and SWT, and process flow editors. For more information on GEF features, please see the Project Overview.
When should I use GEF and when should I use just Draw2d?
The simple answer to this question lies in their names. Draw2d is for drawing. GEF (or Graphical Editing Framework) is for editing.
Draw2d is used for rendering and layout. If all you want is to display data, all you need is Draw2d. If, on the other hand, you want to be able to manipulate that data, you should use GEF. GEF adds important functionality for editing -- commands for changing your model, a palette and tools for selecting and manipulating the edit parts that represent your model, direct edit, accessibility support such as keyboard navigation, native drag and drop, and much more that I've probably missed.
There may be only a few of these functions that you need -- for instance, you may just want to add drag and drop support so that you can drag files from the navigator or a file explorer and drop them onto your application/view, but otherwise only need to display the dropped data and not manipulate it. This is where the line gets blurred. You'll need to weigh the advantages and disadvantages of both options. On the one hand, you could move to GEF, get a bunch of functionality that you don't need and increase the complexity of your code. Or you could stick with Draw2d and implement the functionality you need yourself, maintaining a much simpler implementation. For the above example, I would personally implement the drag and drop function myself and stick with Draw2d. However, you should also consider future needs. You may want more of these functions down the road and moving to GEF now may be helpful.
How do I redistribute GEF with my application?
How do I ask questions?
Questions about the use of GEF in user projects that are not addressed in this FAQ should be posted to the GEF newsgroup. Questions and comments regarding the implementation of GEF itself should be posted to the GEF mailing list.
How do I report a bug or request a feature?
GEF, like the Eclipse project, uses Bugzilla as its bug and feature tracking system. Entering a bug\feature report is as simple as filling in a web form on the eclipse bugzilla page. The first time you enter a bug you will need to create a new bugzilla account for yourself by providing an email address and choosing a password. Before submitting a bug, please be sure to check the list of open GEF bugs and recently closed GEF bugs.
Can I develop a standalone GEF application without use of the Eclipse platform?
The official answer is No, this is not supported.
How can I get started on my GEF-based editor?
The best place to investigate initially is the GEF documentation. This provides high-level concepts of GEF and Draw2d.
Additional Documentation Links
- New and Noteworthy
- Reference Documentation
- Articles, Tutorials, Slides
- Draw2d/GEF Troubleshooting Guide
How do I make a suggestion for this FAQ?
This FAQ is hosted as a Wiki. Anyone can edit this page after creating an account.