The Next Generation Eclipse Graphical Editing Framework
Alexander Nyßen, itemis AG
Image courtesy of Stefan Rimaila/ ﬂickr
The next generation Eclipse
Graphical Editing Framework
• Provides framework components for Eclipse-integrated
graphical editors and views
• Based on SWT as underlying rendering technology
• Initial contribution by IBM in 2002 and Chisel Group in 2007
• In pure maintenance mode, but remains on the ‚train‘
Image courtesy of Hamad Aziz/ ﬂickr
• Provides end-user tools and framework components for
graphical rich-client Java applications, Eclipse-
integrated and standalone
• Based on JavaFX as underlying rendering technology
• Graduation release (1.0.0) with Neon
• Bugﬁx release (1.1.0) with Neon.1
Image courtesy of NASA
The next generation has (ﬁnally) taken over…
[Draw2d, GEF (MVC), Zest]
[Common, Geometry, FX, MVC,
Graph, Layout, Zest, DOT, Cloudio]
Image courtesy of zeitfaenger.at / ﬂickr
Image courtesy of Michael Stern / ﬂickr
Common Geometry FX MVC
Graph Layout Zest
• GEF provides nine loosely coupled components.
• Cloudio and DOT provide end-user features
• The other components form two basic framework stacks:
• Common Geometry FX MVC
• Graph Layout Zest
• Disclosure of preliminary API
• Validation for style, splineType, point, arrowType, shape
• Rendering of decorations, splines, and labels
• Native layout integration
• Further editing and rendering capabilities ✓
• Support for HTML-like labels and subgraphs ✓
• Bundling of Graphviz executable (CQ 11140) ✗
• Enhanced builder API
• Layout now Graph-based (I/O model)
• JFace-API cleanups
Graph Layout Zest
• API-Cleanup ✓
• Live vs. Background Layout ✗
• FXCanvasEx provides workarounds for the following issues:
• JDK-8143596: Forward touch gestures to FXCanvas embedded scene.
• JDK-8161282: FXCanvas does not forward horizontal mouse scroll events to the embedded
• JDK-8088147: Image cursors not supported.
• JDK-8159227: KeyEvent.doit should be forwarded to KeyEvent.consumed().
• JDK-8161587: FXCanvas does not update SWT display.
• JDK-8088862: Provide possibility to traverse focus out of FX scene.
• Fixes for those requiring access to JDK-internals have been
contributed to OpenJFX 9 directly.
• FXCanvasEx can now transparently be used for Java 8 and 9.