Search in sources :

Example 31 with Bound

use of org.kie.workbench.common.stunner.core.graph.content.Bound in project kie-wb-common by kiegroup.

the class CanvasLayoutUtils method getBoundCoordinates.

private double[] getBoundCoordinates(final View view, final Optional<Point2D> parentPosition) {
    final Point2D relativePositionTo = parentPosition.orElse(new Point2D(0, 0));
    final Bounds bounds = view.getBounds();
    final Bound ulBound = bounds.getUpperLeft();
    final Bound lrBound = bounds.getLowerRight();
    final double lrX = lrBound.getX();
    final double lrY = ulBound.getY();
    return new double[] { lrX + relativePositionTo.getX(), lrY + relativePositionTo.getY() };
}
Also used : Point2D(org.kie.workbench.common.stunner.core.graph.content.view.Point2D) Bounds(org.kie.workbench.common.stunner.core.graph.content.Bounds) Bound(org.kie.workbench.common.stunner.core.graph.content.Bound)

Example 32 with Bound

use of org.kie.workbench.common.stunner.core.graph.content.Bound in project kie-wb-common by kiegroup.

the class StunnerConverter method ddExtAugmentStunner.

private void ddExtAugmentStunner(final Node currentNode, final JSIDMNShape shape) {
    final View content = (View) currentNode.getContent();
    final Bound ulBound = upperLeftBound(content);
    final Bound lrBound = lowerRightBound(content);
    final Object definition = content.getDefinition();
    if (definition instanceof Decision) {
        final Decision decision = (Decision) definition;
        internalAugment(shape, ulBound, decision.getDimensionsSet(), lrBound, decision.getStylingSet(), (line) -> {
        /*NOP*/
        });
    } else if (definition instanceof InputData) {
        final InputData inputData = (InputData) definition;
        internalAugment(shape, ulBound, inputData.getDimensionsSet(), lrBound, inputData.getStylingSet(), (line) -> {
        /*NOP*/
        });
    } else if (definition instanceof BusinessKnowledgeModel) {
        final BusinessKnowledgeModel businessKnowledgeModel = (BusinessKnowledgeModel) definition;
        internalAugment(shape, ulBound, businessKnowledgeModel.getDimensionsSet(), lrBound, businessKnowledgeModel.getStylingSet(), (line) -> {
        /*NOP*/
        });
    } else if (definition instanceof KnowledgeSource) {
        final KnowledgeSource knowledgeSource = (KnowledgeSource) definition;
        internalAugment(shape, ulBound, knowledgeSource.getDimensionsSet(), lrBound, knowledgeSource.getStylingSet(), (line) -> {
        /*NOP*/
        });
    } else if (definition instanceof TextAnnotation) {
        final TextAnnotation textAnnotation = (TextAnnotation) definition;
        internalAugment(shape, ulBound, textAnnotation.getDimensionsSet(), lrBound, textAnnotation.getStylingSet(), (line) -> {
        /*NOP*/
        });
    } else if (definition instanceof DecisionService) {
        final DecisionService decisionService = (DecisionService) definition;
        internalAugment(shape, ulBound, decisionService.getDimensionsSet(), lrBound, decisionService.getStylingSet(), (dividerLineY) -> decisionService.setDividerLineY(new DecisionServiceDividerLineY(dividerLineY - ulBound.getY())));
    }
}
Also used : TextAnnotation(org.kie.workbench.common.dmn.api.definition.model.TextAnnotation) DefinitionUtils(org.kie.workbench.common.stunner.core.util.DefinitionUtils) KnowledgeSourceConverter(org.kie.workbench.common.dmn.client.marshaller.converters.KnowledgeSourceConverter) JSITTextAnnotation(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITTextAnnotation) PointUtils.upperLeftBound(org.kie.workbench.common.dmn.client.marshaller.converters.dd.PointUtils.upperLeftBound) JSITDecision(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITDecision) BorderColour(org.kie.workbench.common.dmn.api.property.styling.BorderColour) FontStylingSetPropertyConverter(org.kie.workbench.common.dmn.client.marshaller.converters.dd.FontStylingSetPropertyConverter) FactoryManager(org.kie.workbench.common.stunner.core.api.FactoryManager) PointUtils.widthOfShape(org.kie.workbench.common.dmn.client.marshaller.converters.dd.PointUtils.widthOfShape) Height(org.kie.workbench.common.dmn.api.property.dimensions.Height) BusinessKnowledgeModel(org.kie.workbench.common.dmn.api.definition.model.BusinessKnowledgeModel) DecisionServiceConverter(org.kie.workbench.common.dmn.client.marshaller.converters.DecisionServiceConverter) JSIStyle(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.di.JSIStyle) PointUtils.lowerRightBound(org.kie.workbench.common.dmn.client.marshaller.converters.dd.PointUtils.lowerRightBound) Objects(java.util.Objects) DRGElement(org.kie.workbench.common.dmn.api.definition.model.DRGElement) JSITDecisionService(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITDecisionService) TextAnnotationConverter(org.kie.workbench.common.dmn.client.marshaller.converters.TextAnnotationConverter) List(java.util.List) NodeConverter(org.kie.workbench.common.dmn.client.marshaller.converters.NodeConverter) BgColour(org.kie.workbench.common.dmn.api.property.styling.BgColour) DMNDiagramsSession(org.kie.workbench.common.dmn.client.docks.navigator.drds.DMNDiagramsSession) BusinessKnowledgeModelConverter(org.kie.workbench.common.dmn.client.marshaller.converters.BusinessKnowledgeModelConverter) Optional(java.util.Optional) JSITBusinessKnowledgeModel(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITBusinessKnowledgeModel) JSITKnowledgeSource(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITKnowledgeSource) Node(org.kie.workbench.common.stunner.core.graph.Node) PointUtils.yOfShape(org.kie.workbench.common.dmn.client.marshaller.converters.dd.PointUtils.yOfShape) Width(org.kie.workbench.common.dmn.api.property.dimensions.Width) JSIDMNDecisionServiceDividerLine(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmndi12.JSIDMNDecisionServiceDividerLine) RectangleDimensionsSet(org.kie.workbench.common.dmn.api.property.dimensions.RectangleDimensionsSet) InputDataConverter(org.kie.workbench.common.dmn.client.marshaller.converters.InputDataConverter) JSITInputData(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITInputData) JSIPoint(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dc.JSIPoint) View(org.kie.workbench.common.stunner.core.graph.content.view.View) PointUtils.heightOfShape(org.kie.workbench.common.dmn.client.marshaller.converters.dd.PointUtils.heightOfShape) Inject(javax.inject.Inject) Js(jsinterop.base.Js) Bound(org.kie.workbench.common.stunner.core.graph.content.Bound) PointUtils.xOfShape(org.kie.workbench.common.dmn.client.marshaller.converters.dd.PointUtils.xOfShape) DecisionServiceDividerLineY(org.kie.workbench.common.dmn.api.property.dmn.DecisionServiceDividerLineY) StylingSet(org.kie.workbench.common.dmn.api.property.styling.StylingSet) InputData(org.kie.workbench.common.dmn.api.definition.model.InputData) DecisionConverter(org.kie.workbench.common.dmn.client.marshaller.converters.DecisionConverter) JSIDMNShape(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmndi12.JSIDMNShape) Consumer(java.util.function.Consumer) DecisionService(org.kie.workbench.common.dmn.api.definition.model.DecisionService) JsUtils(org.kie.workbench.common.dmn.webapp.kogito.marshaller.mapper.JsUtils) Dependent(javax.enterprise.context.Dependent) JSIDMNStyle(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmndi12.JSIDMNStyle) KnowledgeSource(org.kie.workbench.common.dmn.api.definition.model.KnowledgeSource) Decision(org.kie.workbench.common.dmn.api.definition.model.Decision) ColorUtils(org.kie.workbench.common.dmn.client.marshaller.converters.dd.ColorUtils) DecisionServiceDividerLineY(org.kie.workbench.common.dmn.api.property.dmn.DecisionServiceDividerLineY) JSITKnowledgeSource(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITKnowledgeSource) KnowledgeSource(org.kie.workbench.common.dmn.api.definition.model.KnowledgeSource) BusinessKnowledgeModel(org.kie.workbench.common.dmn.api.definition.model.BusinessKnowledgeModel) JSITBusinessKnowledgeModel(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITBusinessKnowledgeModel) PointUtils.upperLeftBound(org.kie.workbench.common.dmn.client.marshaller.converters.dd.PointUtils.upperLeftBound) PointUtils.lowerRightBound(org.kie.workbench.common.dmn.client.marshaller.converters.dd.PointUtils.lowerRightBound) Bound(org.kie.workbench.common.stunner.core.graph.content.Bound) JSITInputData(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITInputData) InputData(org.kie.workbench.common.dmn.api.definition.model.InputData) TextAnnotation(org.kie.workbench.common.dmn.api.definition.model.TextAnnotation) JSITTextAnnotation(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITTextAnnotation) View(org.kie.workbench.common.stunner.core.graph.content.view.View) JSITDecision(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITDecision) Decision(org.kie.workbench.common.dmn.api.definition.model.Decision) JSITDecisionService(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITDecisionService) DecisionService(org.kie.workbench.common.dmn.api.definition.model.DecisionService)

Example 33 with Bound

use of org.kie.workbench.common.stunner.core.graph.content.Bound 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)

Example 34 with Bound

use of org.kie.workbench.common.stunner.core.graph.content.Bound in project kie-wb-common by kiegroup.

the class BasePropertyWriter method setBounds.

protected void setBounds(Bounds rect) {
    this.shape = di.createBPMNShape();
    shape.setId(Ids.bpmnShape(getId()));
    shape.setBpmnElement(baseElement);
    org.eclipse.dd.dc.Bounds bounds = dc.createBounds();
    Bound upperLeft = rect.getUpperLeft();
    Bound lowerRight = rect.getLowerRight();
    bounds.setX(upperLeft.getX().floatValue());
    bounds.setY(upperLeft.getY().floatValue());
    bounds.setWidth(lowerRight.getX().floatValue() - upperLeft.getX().floatValue());
    bounds.setHeight(lowerRight.getY().floatValue() - upperLeft.getY().floatValue());
    shape.setBounds(bounds);
}
Also used : Bound(org.kie.workbench.common.stunner.core.graph.content.Bound) Factories.dc(org.kie.workbench.common.stunner.bpmn.backend.converters.fromstunner.Factories.dc)

Example 35 with Bound

use of org.kie.workbench.common.stunner.core.graph.content.Bound in project kie-wb-common by kiegroup.

the class ProcessPostConverter method adjustLane.

private static void adjustLane(BpmnNode lane, Padding padding) {
    if (lane.hasChildren()) {
        ViewPort viewPort = ViewPort.of(lane, false);
        Bounds laneBounds = lane.value().getContent().getBounds();
        Bound laneUl = laneBounds.getUpperLeft();
        Bound laneLr = laneBounds.getLowerRight();
        laneUl.setX(viewPort.getUpperLeftX() - padding.getLeft());
        laneUl.setY(viewPort.getUpperLeftY() - padding.getTop());
        laneLr.setX(viewPort.getLowerRightX() + padding.getRight());
        laneLr.setY(viewPort.getLowerRightY() + padding.getBottom());
        RectangleDimensionsSet laneRectangle = ((Lane) lane.value().getContent().getDefinition()).getDimensionsSet();
        laneRectangle.setWidth(new Width(laneBounds.getWidth()));
        laneRectangle.setHeight(new Height(laneBounds.getHeight()));
    }
}
Also used : Bounds(org.kie.workbench.common.stunner.core.graph.content.Bounds) Bound(org.kie.workbench.common.stunner.core.graph.content.Bound) Lane(org.kie.workbench.common.stunner.bpmn.definition.Lane) Height(org.kie.workbench.common.stunner.bpmn.definition.property.dimensions.Height) RectangleDimensionsSet(org.kie.workbench.common.stunner.bpmn.definition.property.dimensions.RectangleDimensionsSet) Width(org.kie.workbench.common.stunner.bpmn.definition.property.dimensions.Width)

Aggregations

Bound (org.kie.workbench.common.stunner.core.graph.content.Bound)40 Bounds (org.kie.workbench.common.stunner.core.graph.content.Bounds)24 View (org.kie.workbench.common.stunner.core.graph.content.view.View)22 Edge (org.kie.workbench.common.stunner.core.graph.Edge)12 Node (org.kie.workbench.common.stunner.core.graph.Node)12 Test (org.junit.Test)10 Point2D (org.kie.workbench.common.stunner.core.graph.content.view.Point2D)9 Decision (org.kie.workbench.common.dmn.api.definition.model.Decision)7 List (java.util.List)6 Child (org.kie.workbench.common.stunner.core.graph.content.relationship.Child)6 NodeImpl (org.kie.workbench.common.stunner.core.graph.impl.NodeImpl)5 ArrayList (java.util.ArrayList)4 Optional (java.util.Optional)4 InputData (org.kie.workbench.common.dmn.api.definition.model.InputData)4 Metadata (org.kie.workbench.common.stunner.core.diagram.Metadata)4 Graph (org.kie.workbench.common.stunner.core.graph.Graph)4 HashMap (java.util.HashMap)3 Objects (java.util.Objects)3 Consumer (java.util.function.Consumer)3 Collectors (java.util.stream.Collectors)3