use of org.eclipse.elk.alg.layered.graph.transform.ElkGraphTransformer in project elk by eclipse.
the class LayeredLayoutProvider method startLayoutTest.
// /////////////////////////////////////////////////////////////////////////////
// Layout Testing
/**
* Import the given KGraph and return a test execution state prepared for a test run with the
* resulting {@link LGraph}. The layout test run methods can immediately be called on the
* returned object.
*
* <p><strong>Note:</strong> This method does not apply the layout back to the original KGraph!</p>
*
* @param elkgraph the KGraph to be used for the layout test run.
* @return an initialized test execution state
*/
public ElkLayered.TestExecutionState startLayoutTest(final ElkNode elkgraph) {
// Import the graph (layeredGraph won't be null since the KGraphImporter always returns an
// LGraph instance, even though the IGraphImporter interface would allow null as a return
// value)
IGraphTransformer<ElkNode> graphImporter = new ElkGraphTransformer();
LGraph layeredGraph = graphImporter.importGraph(elkgraph);
// Prepare a layout test and return the test execution state
return elkLayered.prepareLayoutTest(layeredGraph);
}
use of org.eclipse.elk.alg.layered.graph.transform.ElkGraphTransformer in project elk by eclipse.
the class LayeredLayoutProvider method layout.
// /////////////////////////////////////////////////////////////////////////////
// Regular Layout
@Override
public void layout(final ElkNode elkgraph, final IElkProgressMonitor progressMonitor) {
// Import the graph (layeredGraph won't be null since the ElkGraphTransformer always returns an LGraph
// instance, even though the IGraphTransformer interface would allow null as a return value)
IGraphTransformer<ElkNode> graphTransformer = new ElkGraphTransformer();
LGraph layeredGraph = graphTransformer.importGraph(elkgraph);
// Check if hierarchy handling for a compound graph is requested
if (elkgraph.getProperty(LayeredOptions.HIERARCHY_HANDLING) == HierarchyHandling.INCLUDE_CHILDREN) {
// Layout for all hierarchy levels is requested
elkLayered.doCompoundLayout(layeredGraph, progressMonitor);
} else {
// Only the top-level graph is processed
elkLayered.doLayout(layeredGraph, progressMonitor);
}
if (!progressMonitor.isCanceled()) {
// Apply the layout results to the original graph
graphTransformer.applyLayout(layeredGraph);
}
}
Aggregations