Jump to: navigation, search

Difference between revisions of "GEF/GEF4/Zest/FX"

< GEF‎ | GEF4‎ | Zest
Line 41: Line 41:
=== ZestFXExampleView ===
=== ZestFXExampleView ===
The ZestFXExampleView
The ZestFXExampleView is a viewer for an example graph:

Revision as of 15:04, 3 June 2014

Note to non-wiki readers: This documentation is generated from the Eclipse wiki - if you have corrections or additions it would be awesome if you added them in the original wiki page.

GEF4 Zest.FX

GEF4 Zest.FX is an alternative Zest.Core implementation based on GEF4 MVC and JavaFX instead of GEF 3.x and SWT. The graph model underlying Zest.FX is provided by GEF4 Graph. Specific implementations of the interfaces defined by GEF4 Layout for GEF4 Graph is provided in the Zest.Layout package. The MVC part can be found in the Zest.FX package, and the Eclipse UI ViewPart can be found in the Zest.FX.Example project.

Layout Implementations

The GEF4 Layout interfaces are implemented for the GEF4 Graph data model. The layout objects are constructed from a given Graph object.


The layout objects support a general properties map. The specific properties for which interface methods are defined are implemented using this properties map.

When transferring the graph objects into layout objects, the attributes of the graph objects are examined, altering the layout objects as follows:

    Contains the label of the node/edge.
    Specifies if the edge should be drawn solid, dashed, or dotted.
    Specifies whether edges are directed or undirected.


The GEF4 MVC component is used as the framework for the viewer.

The ContentParts are implemented for the GEF4 Graph data model:

  • GraphContentPart
  • NodeContentPart
  • EdgeContentPart

An ILayoutModel is used to distribute the LayoutContext to all ContentParts. A GraphRootPart is used to construct the LayoutContext and set it on the ILayoutModel.


The ILayoutModel holds a LayoutContext.


The GraphRootPart stores a LayoutContext in the ILayoutModel. That LayoutContext is created when the viewer's content changes. The GraphRootPart does also listen to viewport changes to trigger a re-layout.


The ZestFXExampleView is a viewer for an example graph: