What is Advanced Excel and what are some best practices for designing and cre...
The Next Generation Eclipse Graphical Editing Framework
1. Alexander Nyßen, itemis AG
Project Lead
Image courtesy of Stefan Rimaila/ flickr
The next generation Eclipse
Graphical Editing Framework
2. GEF 3.x
• 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/ flickr
6. GEF4
• 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
• Bugfix release (1.1.0) with Neon.1
Image courtesy of NASA
7. The next generation has (finally) taken over…
GEF „Generations“
GEF4
GEF
GEF-Legacy
GEF
0.1.0/0.2.0 1.0.0/1.1.0
5.0.03.10.0/3.10.1 3.11.0
3.10.0/3.10.1
(Mars)
4.0.0/4.1.0
(Neon)
5.0.0
(Oxygen)
?
[Draw2d, GEF (MVC), Zest]
[Common, Geometry, FX, MVC,
Graph, Layout, Zest, DOT, Cloudio]
Project Releases
Image courtesy of zeitfaenger.at / flickr
9. Cloudio
GEF Components
Image courtesy of Michael Stern / flickr
DOT
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
12. Neon
• Disclosure of preliminary API
• Validation for style, splineType, point, arrowType, shape
• Rendering of decorations, splines, and labels
• Native layout integration
DOTCloudio
Oxygen
• Further editing and rendering capabilities ✓
• Support for HTML-like labels and subgraphs ✓
• Bundling of Graphviz executable (CQ 11140) ✗
19. NeonOxygen
• Enhanced builder API
• Layout now Graph-based (I/O model)
• JFace-API cleanups
Graph Layout Zest
• API-Cleanup ✓
• Live vs. Background Layout ✗
20. • 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
scene.
• 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.
readiness