GEF/New and Noteworthy/3.10
- New and Noteworthy in 3.0
- New and Noteworthy in 3.5
- New and Noteworthy in 3.6
- New and Noteworthy in 3.7
- New and Noteworthy in 3.8
- New and Noteworthy in 3.9
The Eclipse 3.10.0 (Mars) release provides minor releases for Draw2d (3.10.0), GEF (MVC) (3.10.0), and Zest (1.6.0), as well as initial versions (0.1.0) of all new GEF4 components.
All GEF4 components are purely provisional, that is no API is exposed yet. While the Common, Geometry, MVC components have been mostly written from scratch, the Graph, Layout, DOT, Zest, and Cloudio components are (at least partially) based on the former Zest2 code base. In contrast to the prior Zest2 code base, everything contributed to the 3.10.0 (Mars) release will be completely self-contained, i.e. none of the GEF4 components relies on API provided by Draw2d/GEF (MVC) 3.x, or Zest 1.x.
An overview of all GEF4 components and detailed documentation on each can be found under GEF4.
Tooltip Delay (3.10.0 M1)
TooltipHelper now allows clients to set the tooltip delay (see Bug #323656).
GEF (MVC) 3.10.0
Redoing Commands (M2)
Command#canRedo(), which by default delegates to
Command#canExecute() but can be overwritten to decide whether a command is redoable or not. The
CommandStack now evaluates this when checking of the command on its top can be redone (
CommandStack#canRedo()) (see Bug #332351).
GEF4 Common 0.1.0
Creation of Component (M1)
GEF4 Common component was created by extracting generic components from GEF4 MVC and GEF4 FX, including some generic abstractions like
IPropertyChangeNotifier, as well as related helper/utility classes.
Introduction of AdapterMap-Binding-Support (M1)
To combine the
IAdaptable-mechanism with Google Guice-based dependency injection, a specific map-binding was introduced, which allows to inject adapters into
Support for registering/querying adapters with parameterized types (M4)
IAdaptable to enable registration and retrieval of adapters based on
TypeToken keys. This way, registration of adapters can not only be performed based on raw types (e.g.
Provider.class) but also using parameterized types (e.g.
Provider<IFXAnchor>) (see Bug #453119).
Added IPropertyStore and PropertyStoreSupport (M4)
You can use an
IPropertyStorey to manage properties for which changes can be observed using the
GEF4 Geometry 0.1.0
Introduced support for computing nearest intersection w.r.t .to reference point (M2)
ICurve interface with a method (
getNearestIntersection(ICurve, Point)) that allows to compute the intersection point with another
ICurve nearest to some reference point. This is e.g. quite handy when computing anchor position within
GEF4 Graph 0.1.0
Added methods to alter a Graph's nodes, edges, and attributes (M4)
Added support for nested graphs (M4)
Node can have a nested
Graph assigned to it. The node containing the nested graph is referred to as the 'nesting node'.
GEF4 Layout 0.1.0
Cleaned-up layout interfaces (M4)
Moved the sugiyama-specific abstractions (
CrossingReducer) into the
SugiyamaLayoutAlgorithm as nested classes. Removed the
ExpandCollapseManager from the
LayoutContext, as it is specific to the
GEF4 DOT 0.1.0
Re-created DOT Graph Viewer based on GEF4 Zest (M3)
Replacing the former Zest2 code within
org.eclipse.gef4.zest.ui that still depended on Draw2d, a new GEF4 DOT Graph Viewer was introduced, which is based on Zest.FX and Zest.FX.UI and thus uses JavaFX for visualization purposes (see Bug #441129 for details).
Refactored grammar definition and fixed parsing problems within DOT editor (M4)
Refactored grammar definition and fixed several parsing issues within DOT editor (see Bug #451097 for details).
Added concise lexical and semantic syntax coloring to DOT editor (M4)
Add proper support for lexical and semantic syntax coloring within DOT editor (see Bug #450448 for details).
Added proper outline view for DOT editor (M4)
Implemented a proper outline view for the DOT editor (see Bug #452650 for details).
GEF4 FX 0.1.0
Integrated SwtFX as FX.UI (M1)
Integrated and refactored SwtFX into FX.UI as part of the GEF4 FX component (see Bug #441464).
Removed SwtFXScene (M1)
Removed the need for specific SwtFXScene implementation by ensuring that
SwtFXControlAdapter) can work with an arbitrary JavaFX
Scene (see Bug #441463).
Added FXGridLayer (M2)
FXGridLayer is now provided, which can be used as a background layer.
Revised IFXAnchor API (M2)
IFXAnchor#detach() now take an additional
IAdaptable argument, which may be used to provide additional information to the specific anchor. In case of an
FXChopBoxAnchor, this mechanism is used to pass in a
FXChopBoxAnchor$ReferencePointProvider, thereby replicating the old
FXChopBoxHelper mechanism which involved direct coupling. Furthermore, an
FXChopBoxAnchor$ComputationStrategy interface has been extracted from the
FXChopBoxAnchor (an implementation can be passed in via its constructor), so the strategy, which is used to compute anchor positions, can be replaced (see Bug #442971, Bug #444009).
Introduced IFXConnectionRouter (M2)
IFXConnectionRouter interface has been extracted from
FXConnection. It can be passed in via
FXConnection#setRouter() and is responsible of computing a curve geometry from the passed in (manually provided) waypoints of the connection (see Bug #443781).
GEF4 MVC 0.1.0
Added grid layer and implemented snap-to-grid support (M2)
FXRootPart now creates an
FXGridLayer as underlying layer by default. Visibility of the layer can be controlled via a
GridModel, which is to be registered as an
IViewer adapter. The
GridModel allows to select the grid cell height and width and whether the grid is to be zoomed with the contents layer or not. It can also be used to enable/disable snap-to-grid, which is respected by the
Added support for hover handles (M3)
Add support for transaction-based execution of operations (M3)
IDomain now allows to open/close transactions, executing a set of related
IUndoableOperation as an atomic (composite) operation. This way, several (transaction) policies can independently execute operations during an interaction, while undo/redo is performed for the overall transaction.
Introduced ContentPolicy and moved responsibility for content operations into IContentPart (M3)
Added support for creation of new content via the CreationPolicy (M4)
CreationPolicy uses the
ContentPolicy to create new content. In the MVC example, a simple creation-menu is implemented which can be activated using the secondary mouse button.
GEF4 Zest 0.1.0
Created Zest.FX and Zest.FX.UI as a replacement for Zest2 Core (M1)
Implemented Pruning/Unpruning of child nodes (M3)
Extract dependencies to GEF4 Layout into adapters (M4)
Renamed "subgraph" to "pruning" (M4)
The term "subgraph" does now refer to the combined rendering of multiple hidden nodes. Whereas "pruning" refers to hiding nodes, without visualizing them.
Only one level of a hierarchy is rendered as once, but you can open a nested graph by double clicking the corresponding node.