Skip to main content
Jump to: navigation, search

GEF/New and Noteworthy/3.11

< GEF‎ | New and Noteworthy
Revision as of 14:02, 9 November 2015 by (Talk | contribs) (GEF4 FX 0.3.0)


The GEF 3.11.0/4.0.0 (Neon) release provides minor revisions of the production components Draw2d 3.x (3.11.0), GEF (MVC) 3.x (3.11.0), and Zest 1.x (1.7.0), as well as minor or major revisions of the new GEF4 components (0.3.0/1.0.0). As declared in the project plan, the decision about whether GEF4 is provided in version 1.0.0 or 0.3.0 (and whether the overall release is a 4.0.0 or 3.11.0) will be made up to M5.

Please note that even if GEF 3.11.1/4.0.0 may be a minor release, incompatible changes to the provisional API of GEF4 will be made. These are highlighted below as [INCOMPATIBLE CHANGE].

GEF4 FX 0.3.0

[INCOMPATIBLE CHANGE] Split FX.UI module into FX.SWT and FX.JFace modules (M2)

Renamed FX.UI module into FX.SWT module and added FXColorPicker, FXSimpleLinearGradientPicker, and FXAdvancedLinearGradientPicker, which were provided by MVC.FX.UI module before (refactored from AbstractFXColorPicker, FXColorPicker, FXSimpleGradientPicker, and FXAdvancedGradientPicker). Introduced new FX.JFace module, which provides FXPaintCellEditor and FXPaintSelectionDialog, which were provided by MVC.FX.UI module before (refactored from FXFillCellEditor and FXFillSelectionDialog).

[INCOMPATIBLE CHANGE] Moved over (and refactored) IFXCanvasFactory from MVC.UI

Moved over IFXCanvasFactory and changed signature of the create method to take an additional SWT style.

[INCOMPATIBLE CHANGE] Merged ScrollPaneEx and FXGridCanvas into InfiniteCanvas (M3)

Renamed the ScrollPaneEx to InfiniteCanvas and revised its API. The FXGridLayer has been removed and its functionality was moved to InfiniteCanvas. The InfiniteCanvas does now allow to insert visuals at different "positions" inside of the InfiniteCanvas: underlay group, scrolled underlay group, content group, scrolled overlay group, overlay group.

[INCOMPATIBLE CHANGE] Removed 'FX' prefix from all classes in FX module (M3)

Renamed IFXAnchor to IAnchor, AbstractFXAnchor to AbstractAnchor, FXChopBoxAnchor to ChopBoxAnchor and FXStaticAnchor to StaticAnchor. Renamed FXGeometryNode to GeometryNode. Renamed FXConnection to Connection, IFXDecoration to IConnectionDecoration, and IFXConnectionRouter to IConnectionRouter, FXPolyBezierConnectionRouter to PolyBezierConnectionRouter, and FXPolylineConnectionRouter to PolylineConnectionRouter. Renamed AbstractFXGesture to AbstractGesture, AbstractFXMouseDragGesture to AbstractMouseDragGesture, AbstractFXPinchSpreadGesture to AbstractPinchSpreadGesture, and AbstractFXRotateGesture to AbstractRotateGesture. Split FXUtils into NodeUtils and CursorUtils and moved it into o.e.g4.fx.utils package.

GEF4 MVC 0.3.0

[INCOMPATIBLE CHANGE] Moved cell editor, dialogs, and pickers from MVC.FX.UI to FX.SWT and FX.JFace (M2)

Refactored AbstractFXColorPicker, FXColorPicker, FXSimpleGradientPicker, and FXAdvancedGradientPicker and moved them into FX.SWT (renamed from FX.UI). Refactored FXFillCellEditor and FXFillSelectionDialog and moved them into FX.JFace.

[INCOMPATIBLE CHANGE] Refactored FXTransformPolicy (MVC.FX) and the related policies (M2)

The FXTransformPolicy now provides an API for the creation and manipulation of transformation matrices. These matrices are then concatenated, together with the initial host transformation matrix, to yield the new host transformation matrix. Therefore, complex transformations can be set up properly at one point, and the important values can be changed later on, e.g. during user interaction.

Moreover, the related policies (FXRelocateConnectionPolicy, FXRelocateOnDragPolicy, FXResizeRelocateOnHandleDragPolicy, FXResizeRelocatePolicy, FXRotatePolicy, FXRotateSelectedOnHandleDragPolicy, FXRotateSelectedOnRotatePolicy, FXScaleRelocateOnHandleDragPolicy, and FXScaleRelocatePolicy) have been renamed to express the actual transformation (e.g. "translate" instead of "relocate"). Additionally, the intermediate FXResizeRelocatePolicy, FXRotatePolicy, and FXScaleRelocatePolicy have been removed. The policies that were dependent on those intermediate policies are now directly using the FXTransformPolicy.

[INCOMPATIBLE CHANGE] Refactored ContentPolicy, CreationPolicy, and DeletionPolicy (M3)

Cleaned up ContentPolicy to only provide operations related to the content of the respective host part. It is intended to be registered at each IContentPart. Moved all "higher-level" operations into CreationPolicy and DeletionPolicy, which are to be registered at the IRootPart alone.

Furthermore, updating the selection, hover, and focus models is now handled within the CreationPolicy and the DeletionPolicy and the ClearHoverFocusSelectionOperation has been removed. The CreationPolicy selects and focusses a newly created part. The DeletionPolicy removes the deleted parts from the selection and focus models. Moreover, the CreationPolicy creates the IContentPart before executing operations on the history. Therefore, the content part can be used for live feedback even though the creation is not yet committed.

GEF4 Zest

[INCOMPATIBLE CHANGE] Factored out Zest.FX.JFace from Zest.FX.UI (M2)

Separeted out the Zest JFace-API into an own module, so it can be consumed without introducing dependencies on the Eclipse Workbench UI.

[INCOMPATIBLE CHANGE] Removed IEdgeDecorationProvider (M2)

Removed IEdgeDecorationProvider from Zest.FX.Jface. Respective ZestProperties.EDGE_SOURCE_DECORATION and ZestProperties.EDGE_TARGET_DECORATION attributes may be provided via IGraphNodeLabelProvider#getEdgeAttributes() instead.

Back to the top