GEF4 is the unified effort to develop a new GEF 4.x code base as a modernization of the current production components Draw2d/GEF (MVC) 3.x, and Zest 1.x. Being developed in parallel to maintaining the production components, GEF4 is set up in terms of smaller, more lightweight components. Integration builds of GEF4 are available on a weekly basis (see Developer Resources), and GEF4 is part of the GEF 3.10.0 (Mars) contribution to the Mars simultaneous release (for which milestone builds are available).
Information about the history and current plans and can be inferred from the following presentations/articles/posts:
- Alexander Nyßen (2012): GEF - Past, Present, and Future, EclipseCon NA, Reston (VA), 2012
- Alexander Nyßen (2012): GEF4 - Share And Enjoy..., EclipseCon Europe, Ludwigsburg, 2012
- Alexander Nyßen (2013): GEF4 - (Continue to) Share and Enjoy..., EclipseCon NA, Boston (MA), 2013
- Alexander Nyßen (2013): GEF4 SwtFX (Lightning Talks), EclipseCon Europe, Ludwigsburg, 2013
- Alexander Nyßen (2013): GEF4, RheinJug, Düsseldorf, 2013
- Alexander Nyßen (2014): GEF4 - There's really something going on!, EclipseCon NA, San Francisco (CA), 2014
- Alexander Nyßen (2014): GEF4 - Our mission to Mars, EclipseCon Europe, Ludwigsburg, 2014
- Alexander Nyßen (2014): IAdaptable - GEF4's Interpretation of a Classic, ANy's Argument (Blog)
Having complete the migration of the Zest 2.x code base to GEF4 with Mars M6, we are currently working on closing parts of the remaining functional gap between GEF4 and GEF 3.x. From M7 onwards we will concentrate to build up a proper developer documentation here in the wiki.
Please note that (even including the intended Mars release version) all GEF4 API is still provisional, i.e. there is no released API yet. Therefore, all API-packages are exported with the x-internal directive. To differentiate them from non-API packages, all non-API packages are explicitly named as 'internal' and are either not exported by the bundle manifest, or only via an x-friends directive (if they are used in other test bundles, etc.). You may want to consult the Contributor Guide for details on how to set up your IDE to get rid of any restricted access warnings that are caused by this policy.
- GEF4 Common - Provides basic abstractions and infrastructure used by (potentially) all other GEF4 components, including an enhanced adaptable pattern and notification support.
- GEF4 Geometry (Geometry / Geoemtry.Convert.SWT / Geometry.Convert.FX) - Provides different abstractions (Euclidean, Projective, Planar) for 2D geometric calculations, and conversions of planar geometries (curves, shapes, poly shapes) to/from respective SWT, AWT, and JavaFX equivalents (as well as conversions between SWT and AWT geometries).
- GEF4 FX (FX / FX.UI) - Provides support for rendering GEF4 Geometry-based shapes, as well as abstractions that are needed in the context of graphical editors and views, i.e. visual anchor implementations and a connection abstraction. Also enhances the JavaFX-SWT-Integration with forwarding of touch gestures and provides proper support for embedding SWT Controls via a generic adapter into a JavaFX scene graph (within the context of the JavaFX SWT integration).
- GEF4 Graph Provides a simply, UI-independent data-model (Graph, Node, Edge) for representing directed graphs. Is used as input/output model by GEF4 DOT and underlying visualization-model for GEF4 Zest.
- GEF4 Layout - Provides layout algorithm implementations as well as a model facade to adapt layout model data for these algorithms.
- GEF4 MVC (MVC / MVC.UI / MVC.FX / MVC.FX.UI) - The core model-view-controller framework to build up graphical editors and views. Provides an UI toolkit independent and a JavaFX specific layer, as well as Eclipse-UI integration for both. Can be used to build standalone and Eclipse-integrated editors and views.
- GEF4 Zest (Zest.FX / Zest.FX.UI) - Visualization framework that supports visualization of GEF4 Graph-based models, integrating automated layout based on GEF4 Layout.
- GEF4 DOT (DOT / DOT.UI) Provides a basic GraphViz DOT-Editor (Xtext) as well as a GEF4 Zest-based DOT-visualization.
- GEF4 Cloudio - Provides support for visualizing tag clouds. Is based on SWT/JFace, integrated in the Eclipse UI, and will (at least for now) not be ported to JavaFX.
All relevant information about how to obtain our source code, where to find our Hudson build jobs, update sites, mailing lists, or our forum, etc. can all be found in the respective sections of the GEF project dashboard. In addition to this, there is a dedicated Contributor Guide that describes how to setup a workspace, provide a patch, execute a headless Tycho-build, and more.