Skip to main content
Jump to: navigation, search

GEF/New and Noteworthy/3.10.1


The GEF 3.10.1 (Mars SR1) release provides service releases for the production components Draw2d 3.x (3.10.1), GEF (MVC) 3.x (3.10.1), and Zest 1.x (1.6.1), as well as for the new GEF4 components (0.1.1).

Breaking changes of provisional API from 0.1.0 to 0.1.1

While GEF 3.10.1 (Mars SR1) is a bugfix release, some minor adjustments have been applied to the provisional API of GEF4.

DefaultSelectionProvider was moved (M1)

org.eclipse.gef4.mvc.fx.ui.DefaultSelectionProvider was moved to org.eclipse.gef4.mvc.ui.DefaultSelectionProvider because it is independent of JavaFX.

FXMouseDragGesture, FXPinchSpreadGesture, and FXRotateGesture were renamed (M1)

The FXMouseDragGesture, FXPinchSpreadGesture, and FXRotateGesture abstract base implementations located in package org.eclipse.gef4.fx.gestures were renamed to consistently use the 'Abstract' prefix:

  • org.eclipse.gef4.fx.gestures.FXMouseDragGesture was renamed to org.eclipse.gef4.fx.gestures.AbstractFXMouseDragGesture
  • org.eclipse.gef4.fx.gestures.FXPinchSpreadGesture was renamed to org.eclipse.gef4.fx.gestures.AbstractFXPinchSpreadDragGesture
  • org.eclipse.gef4.fx.gestures.FXRotateGesture was renamed to org.eclipse.gef4.fx.gestures.AbstractFXRotateGesture

FXViewer was changed to enable that it can work with a shared JavaFX scene (M2)

  • #472646
  • The contract of org.eclipse.gef4.mvc.fx.viewer.FXViewer was changed so that it is no longer responsible of constructing a JavaFX scene and hooking it into an org.eclipse.gef4.mvc.fx.viewer.ISceneContainer. Instead FXViewer is now only responsible of constructing its own visuals (lazily within #getScrollPane()) and hooking the root part visuals into it.
  • The now obsolete org.eclipse.gef4.mvc.fx.viewer.ISceneContainer abstraction and the related org.eclipse.gef4.mvc.fx.FXStageSceneContainer, and org.eclipse.gef4.mvc.fx.ui.FXCanvasSceneContainer implementations were removed.

GEF4 Geometry 0.1.1

Aligned background color within the examples and added window titles where missing (M1)

GEF4 Layout 0.1.1

Fixed a bug where dynamic layout was not applied although it should (M1)

GEF4 FX 0.1.1

Fixed a Java 8-related bug where chop box anchor positions were not computed (M1)

GEF4 MVC 0.1.1

Fixed a bug where the undo history was incorrectly cleared (M1)

Enhanced the default resize mechanism for better customizability (M1)

You can now define the visual that is resized (only the part's "main" visual was allowed before), and also define the initial size (the visual's layout-bounds were used before).

Fixed a bug where the way points of a connection were "jumping"/changing position (M1)

Added checks to determine the dirty state of an FXEditor based on the undo-history (M1)

Added a widget for creating/manipulating multi-stop linear gradients (M1)

The FXAdvancedGradientPicker embedded into a property edit dialog.

Fixed that FXViewer could not share a JavaFX scene (M2)

Before the applied change, FXViewer was responsible of creating a JavaFX scene and was provided with an ISceneContainer implementation, to hook the scene into a Stage (standalone) or FXCanvas (Eclipse UI integration) as follows:

// standalone
viewer.setSceneContainer(new FXStageSceneContainer(primaryStage));
// Eclipse UI integration
viewer.setSceneContainer(new FXCanvasSceneContainer(canvas));

The FXViewer had full control over the scene creation, so other root visuals than those provided by the viewer could not be set for the scene. This responsibility was moved out of FXViewer, so its visuals are now hooked into the scene as follows:

// standalone
primaryStage.setScene(new Scene(viewer.getScrollPane()));
// Eclipse UI integration
canvas.setScene(new Scene(viewer.getScrollPane()));

Thereby, several FXViewers can now share a single scene, which is e.g. necessary to create a palette viewer. By means of an JavaFX SplitPane, this could look like follows:

// embed two viewers into a single scene by means of a SplitPane
SplitPane sp = new SplitPane();
sp.getItems().addAll(viewer1.getScrollPane(), viewer2.getScrollPane());
primaryStage.setScene(new Scene(sp));

Back to the top