Migrating to the Eclipse Layout Kernel
Last modified by uru on 2023/07/11 10:33
The Eclipse Layout Kernel (ELK) is the official Eclipse project our layout technology will move to. As part of the move, expect changes in these areas:
- Plugin names
- Extension point names
- Package names
- Plugin structure
- KGraph meta model
To make migration easier for everyone, this page is intended to track all changes.
- The classes formerly provided by de.cau.cs.kieler.core are now to be found in org.eclipse.elk.core, with the following exceptions:
- The ...properties package was moved to the .graph plugin.
- ForwardingInputStream was moved to the ...graphviz.layouter plugin.
- ForkedOutputStream was moved to the ...graphviz.layouter plugin.
- All pre-defined layout types now have the ID org.eclipse.elk.type.XXX
- All pre-defined diagram types now have the ID org.eclipse.elk.diagram.XXX
- All pre-defined layout options now have the ID org.eclipse.elk.XXX (except for options defined by specific layout algorithms, which have the ID org.eclipse.elk.ALGORITHM.XXX)
- de.cau.cs.kieler.klay.layered.portAnchor is now org.eclipse.elk.portAnchor instead of org.eclipse.elk.layered.portAnchor
- All pre-defined layout algorithms now have the ID org.eclipse.elk.algorithm.XXX
IKielerProgressMonitor -> IElkProgressMonitor
ILayoutConfig -> LayoutConfigurator
- IVolatileLayoutConfig
use LayoutConfigurator
to set global options
IVolatileLayoutConfig#setValue(prop, value)
-->
LayoutConfigurator#configure(KGraphElement.class).setProperty(prop, value) - IDiagramLayoutManager -> IDiagramLayoutConnector
LayoutManagerService -> LayoutConnectorsService
LayoutListeners:
DiagramLayoutEngine.INSTANCE.addLayoutTerminatedListener(new DiagramLayoutEngine.ILayoutTerminatedListener() {
-->
LayoutConnectorsService.getInstance().addLayoutListener(new ILayoutListener() {KimlUtil.loadDataElements(...) -> GraphDataUtil.loadDataElements(...)
Perhaps of lesser interest:
- We now depend on Google Guava 15 instead of 10.
LayoutOptions
For the moment, see this confluence question.