Eclipse Layout Kernel (ELK) - Migrating to the Eclipse Layout Kernel 

Page / - last modified by uru on 2023/07/11 10:33 

Migrating to the Eclipse Layout Kernel 
last modified by uru
on 2023/07/11 10:33

Table of Contents
LayoutOptions

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.
521