Search in sources :

Example 1 with VertexPositionImpl

use of org.kie.workbench.common.stunner.core.graph.processing.layout.VertexPositionImpl in project kie-wb-common by kiegroup.

the class SugiyamaLayoutService method buildLayout.

Layout buildLayout(final HashMap<String, Node> indexByUuid, final List<GraphLayer> layers) {
    final Layout layout = new Layout();
    for (int i = layers.size() - 1; i >= 0; i--) {
        final GraphLayer layer = layers.get(i);
        for (final Vertex v : layer.getVertices()) {
            final Node n = indexByUuid.get(v.getId());
            final int x = v.getX();
            final int y = v.getY();
            final Bounds currentBounds = ((HasBounds) n.getContent()).getBounds();
            final Bound lowerRight = currentBounds.getLowerRight();
            final int x2;
            if (isCloseToZero(lowerRight.getX())) {
                x2 = x + VertexPositioning.DEFAULT_VERTEX_WIDTH;
            } else {
                x2 = (int) (x + lowerRight.getX());
            }
            final int y2;
            if (isCloseToZero(lowerRight.getY())) {
                y2 = y + VertexPositioning.DEFAULT_VERTEX_HEIGHT;
            } else {
                y2 = (int) (y + lowerRight.getY());
            }
            final VertexPosition position = new VertexPositionImpl(v.getId(), new Point2D(x, y), new Point2D(x2, y2));
            layout.getNodePositions().add(position);
        }
    }
    return layout;
}
Also used : Vertex(org.kie.workbench.common.stunner.core.graph.processing.layout.Vertex) Layout(org.kie.workbench.common.stunner.core.graph.processing.layout.Layout) Point2D(org.kie.workbench.common.stunner.core.graph.content.view.Point2D) Node(org.kie.workbench.common.stunner.core.graph.Node) HasBounds(org.kie.workbench.common.stunner.core.graph.content.HasBounds) Bounds(org.kie.workbench.common.stunner.core.graph.content.Bounds) VertexPosition(org.kie.workbench.common.stunner.core.graph.processing.layout.VertexPosition) Bound(org.kie.workbench.common.stunner.core.graph.content.Bound) VertexPositionImpl(org.kie.workbench.common.stunner.core.graph.processing.layout.VertexPositionImpl) HasBounds(org.kie.workbench.common.stunner.core.graph.content.HasBounds)

Aggregations

Node (org.kie.workbench.common.stunner.core.graph.Node)1 Bound (org.kie.workbench.common.stunner.core.graph.content.Bound)1 Bounds (org.kie.workbench.common.stunner.core.graph.content.Bounds)1 HasBounds (org.kie.workbench.common.stunner.core.graph.content.HasBounds)1 Point2D (org.kie.workbench.common.stunner.core.graph.content.view.Point2D)1 Layout (org.kie.workbench.common.stunner.core.graph.processing.layout.Layout)1 Vertex (org.kie.workbench.common.stunner.core.graph.processing.layout.Vertex)1 VertexPosition (org.kie.workbench.common.stunner.core.graph.processing.layout.VertexPosition)1 VertexPositionImpl (org.kie.workbench.common.stunner.core.graph.processing.layout.VertexPositionImpl)1