Search in sources :

Example 61 with Bounds

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

the class NodeConnectorTest method testSetConnectionMagnets.

@Test
public void testSetConnectionMagnets() {
    Edge edge = mock(Edge.class);
    ViewConnector viewConnector = mock(ViewConnector.class);
    JSIDMNEdge jsidmnEdge = mock(JSIDMNEdge.class);
    Node sourceNode = mock(Node.class);
    Node targetNode = mock(Node.class);
    View<?> view = mock(View.class);
    Bounds bounds = mock(Bounds.class);
    JSIPoint start = mock(JSIPoint.class);
    JSIPoint waypoint = mock(JSIPoint.class);
    JSIPoint end = mock(JSIPoint.class);
    List<JSIPoint> waypoints = new ArrayList<>();
    waypoints.add(start);
    waypoints.add(waypoint);
    waypoints.add(end);
    NodeConnector nodeConnector = mock(NodeConnector.class);
    doCallRealMethod().when(nodeConnector).setConnectionMagnets(eq(edge), eq(viewConnector), eq(jsidmnEdge));
    when(jsidmnEdge.getWaypoint()).thenReturn(waypoints);
    when(jsidmnEdge.getId()).thenReturn(AUTO_SOURCE_CONNECTION + AUTO_TARGET_CONNECTION);
    when(edge.getSourceNode()).thenReturn(sourceNode);
    when(edge.getTargetNode()).thenReturn(targetNode);
    when(sourceNode.getContent()).thenReturn(view);
    when(targetNode.getContent()).thenReturn(view);
    when(view.getBounds()).thenReturn(bounds);
    when(bounds.getWidth()).thenReturn(0.0);
    when(bounds.getHeight()).thenReturn(0.0);
    when(start.getX()).thenReturn(0.0);
    when(start.getY()).thenReturn(0.0);
    when(waypoint.getX()).thenReturn(1.0);
    when(waypoint.getY()).thenReturn(1.0);
    when(start.getX()).thenReturn(1.0);
    when(start.getY()).thenReturn(1.0);
    nodeConnector.setConnectionMagnets(edge, viewConnector, jsidmnEdge);
    verify(nodeConnector).isSourceAutoConnectionEdge(jsidmnEdge);
    verify(nodeConnector).isTargetAutoConnectionEdge(jsidmnEdge);
    verify(viewConnector).setControlPoints(any());
}
Also used : ViewConnector(org.kie.workbench.common.stunner.core.graph.content.view.ViewConnector) Node(org.kie.workbench.common.stunner.core.graph.Node) JSIBounds(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dc.JSIBounds) Bounds(org.kie.workbench.common.stunner.core.graph.content.Bounds) ArrayList(java.util.ArrayList) JSIPoint(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dc.JSIPoint) JSIDMNEdge(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmndi12.JSIDMNEdge) Edge(org.kie.workbench.common.stunner.core.graph.Edge) JSIDMNEdge(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmndi12.JSIDMNEdge) Test(org.junit.Test)

Example 62 with Bounds

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

the class NodeConnectorTest method testConnectEdgeToNodesWhenDMNDIIsNotPresent.

@Test
public void testConnectEdgeToNodesWhenDMNDIIsNotPresent() {
    final JSIDMNEdge newEdge = mock(JSIDMNEdge.class);
    when(jsiDMNElementReference.getHref()).thenReturn("#123");
    when(jsiDMNElement.getId()).thenReturn("789");
    when(nodeEntry.getNode()).thenReturn(requiredNode);
    final View<?> view = mock(View.class);
    final Bounds bounds = mock(Bounds.class);
    when(bounds.getHeight()).thenReturn(50d);
    when(bounds.getWidth()).thenReturn(100d);
    when(view.getBounds()).thenReturn(bounds);
    when(requiredNode.getContent()).thenReturn(view);
    doReturn("456").when(nodeConnector).uuid();
    doReturn(newEdge).when(nodeConnector).newEdge(50, 25);
    doNothing().when(nodeConnector).connectWbEdge(any(), any(), any(), any(), any(), any());
    entriesById.put("123", singletonList(nodeEntry));
    isDMNDIPresent = false;
    nodeConnector.connectEdgeToNodes(connectorTypeId, jsiDMNElement, jsiDMNElementReference, entriesById, diagramId, edges, isDMNDIPresent, currentNode);
    verify(nodeConnector).connectWbEdge(eq(connectorTypeId), eq(diagramId), eq(currentNode), eq(requiredNode), eq(newEdge), eq("456"));
}
Also used : JSIBounds(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dc.JSIBounds) Bounds(org.kie.workbench.common.stunner.core.graph.content.Bounds) JSIDMNEdge(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmndi12.JSIDMNEdge) Test(org.junit.Test)

Example 63 with Bounds

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

the class GraphUtils method computeGraphHashCode.

@SuppressWarnings("all")
public static int computeGraphHashCode(GraphImpl graph) {
    final int[] result = { 0 };
    new TreeWalkTraverseProcessorImpl().traverse(graph, new AbstractTreeTraverseCallback<Graph, Node, Edge>() {

        @Override
        public boolean startEdgeTraversal(final Edge edge) {
            super.startEdgeTraversal(edge);
            final Object content = edge.getContent();
            result[0] = combineHashCodes(result[0], content.hashCode());
            if (edge.getContent() instanceof ViewConnector) {
                Optional<Connection> sourceConnection = ((ViewConnector) edge.getContent()).getSourceConnection();
                sourceConnection.ifPresent(c -> result[0] = combineHashCodes(result[0], c.hashCode()));
                Optional<Connection> targetConnection = ((ViewConnector) edge.getContent()).getTargetConnection();
                targetConnection.ifPresent(c -> result[0] = combineHashCodes(result[0], c.hashCode()));
            }
            return true;
        }

        @Override
        public boolean startNodeTraversal(final Node node) {
            super.startNodeTraversal(node);
            result[0] = combineHashCodes(result[0], node.hashCode());
            if (!(node.getContent() instanceof DefinitionSet) && node.getContent() instanceof Definition) {
                Object def = ((Definition) (node.getContent())).getDefinition();
                result[0] = combineHashCodes(result[0], def.hashCode());
            }
            if (node.getContent() instanceof HasBounds) {
                Bounds bounds = ((HasBounds) node.getContent()).getBounds();
                result[0] = combineHashCodes(result[0], bounds.hashCode());
            }
            return true;
        }
    });
    return result[0];
}
Also used : IntStream(java.util.stream.IntStream) Connection(org.kie.workbench.common.stunner.core.graph.content.view.Connection) Edge(org.kie.workbench.common.stunner.core.graph.Edge) PortablePreconditions.checkNotNull(org.kie.soup.commons.validation.PortablePreconditions.checkNotNull) HashMap(java.util.HashMap) HashUtil.combineHashCodes(org.kie.workbench.common.stunner.core.util.HashUtil.combineHashCodes) OptionalInt(java.util.OptionalInt) Function(java.util.function.Function) View(org.kie.workbench.common.stunner.core.graph.content.view.View) Map(java.util.Map) Bound(org.kie.workbench.common.stunner.core.graph.content.Bound) Element(org.kie.workbench.common.stunner.core.graph.Element) AbstractTreeTraverseCallback(org.kie.workbench.common.stunner.core.graph.processing.traverse.tree.AbstractTreeTraverseCallback) DefinitionManager(org.kie.workbench.common.stunner.core.api.DefinitionManager) StreamSupport(java.util.stream.StreamSupport) Diagram(org.kie.workbench.common.stunner.core.diagram.Diagram) Point2D(org.kie.workbench.common.stunner.core.graph.content.view.Point2D) Iterator(java.util.Iterator) Predicate(java.util.function.Predicate) Collection(java.util.Collection) TreeWalkTraverseProcessorImpl(org.kie.workbench.common.stunner.core.graph.processing.traverse.tree.TreeWalkTraverseProcessorImpl) Set(java.util.Set) Child(org.kie.workbench.common.stunner.core.graph.content.relationship.Child) DefinitionSet(org.kie.workbench.common.stunner.core.graph.content.definition.DefinitionSet) Collectors(java.util.stream.Collectors) Definition(org.kie.workbench.common.stunner.core.graph.content.definition.Definition) ViewConnector(org.kie.workbench.common.stunner.core.graph.content.view.ViewConnector) Objects(java.util.Objects) List(java.util.List) Graph(org.kie.workbench.common.stunner.core.graph.Graph) GraphImpl(org.kie.workbench.common.stunner.core.graph.impl.GraphImpl) Stream(java.util.stream.Stream) Optional(java.util.Optional) Dock(org.kie.workbench.common.stunner.core.graph.content.relationship.Dock) HasBounds(org.kie.workbench.common.stunner.core.graph.content.HasBounds) Collections(java.util.Collections) Bounds(org.kie.workbench.common.stunner.core.graph.content.Bounds) Node(org.kie.workbench.common.stunner.core.graph.Node) ViewConnector(org.kie.workbench.common.stunner.core.graph.content.view.ViewConnector) Optional(java.util.Optional) 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) Definition(org.kie.workbench.common.stunner.core.graph.content.definition.Definition) TreeWalkTraverseProcessorImpl(org.kie.workbench.common.stunner.core.graph.processing.traverse.tree.TreeWalkTraverseProcessorImpl) Graph(org.kie.workbench.common.stunner.core.graph.Graph) DefinitionSet(org.kie.workbench.common.stunner.core.graph.content.definition.DefinitionSet) Edge(org.kie.workbench.common.stunner.core.graph.Edge) HasBounds(org.kie.workbench.common.stunner.core.graph.content.HasBounds)

Example 64 with Bounds

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

the class ShapeUtilsTest method testEnforceLocationConstraints.

@Test
public void testEnforceLocationConstraints() {
    ShapeViewExtStub shape = spy(new ShapeViewExtStub());
    Bounds bounds = mock(Bounds.class);
    ShapeUtils.enforceLocationConstraints(shape, bounds);
    verify(shape, times(1)).setDragBounds(eq(bounds));
}
Also used : ShapeViewExtStub(org.kie.workbench.common.stunner.core.client.shape.ShapeViewExtStub) Bounds(org.kie.workbench.common.stunner.core.graph.content.Bounds) Test(org.junit.Test)

Example 65 with Bounds

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

the class GraphBuilderTest method mockBpmnNode.

public static BpmnNode mockBpmnNode(Node<? extends View<? extends BPMNViewDefinition>, ?> node) {
    Bounds nodeBounds = node.getContent().getBounds();
    BasePropertyReader propertyReader = mock(BasePropertyReader.class);
    BPMNShape shape = mock(BPMNShape.class);
    org.eclipse.dd.dc.Bounds bounds = dc.createBounds();
    bounds.setX(nodeBounds.getUpperLeft().getX().floatValue());
    bounds.setY(nodeBounds.getUpperLeft().getY().floatValue());
    bounds.setWidth(Double.valueOf(nodeBounds.getWidth()).floatValue());
    bounds.setHeight(Double.valueOf(nodeBounds.getHeight()).floatValue());
    Bounds readerBounds = Bounds.create(nodeBounds.getUpperLeft().getX(), nodeBounds.getUpperLeft().getY(), nodeBounds.getLowerRight().getX(), nodeBounds.getLowerRight().getY());
    when(propertyReader.getBounds()).thenReturn(readerBounds);
    when(shape.getBounds()).thenReturn(bounds);
    when(propertyReader.getShape()).thenReturn(shape);
    return BpmnNode.of(node, propertyReader);
}
Also used : Bounds(org.kie.workbench.common.stunner.core.graph.content.Bounds) BasePropertyReader(org.kie.workbench.common.stunner.bpmn.backend.converters.tostunner.properties.BasePropertyReader) BPMNShape(org.eclipse.bpmn2.di.BPMNShape) Factories.dc(org.kie.workbench.common.stunner.bpmn.backend.converters.fromstunner.Factories.dc)

Aggregations

Bounds (org.kie.workbench.common.stunner.core.graph.content.Bounds)95 Test (org.junit.Test)42 View (org.kie.workbench.common.stunner.core.graph.content.view.View)34 Bound (org.kie.workbench.common.stunner.core.graph.content.Bound)26 Node (org.kie.workbench.common.stunner.core.graph.Node)24 Edge (org.kie.workbench.common.stunner.core.graph.Edge)20 Point2D (org.kie.workbench.common.stunner.core.graph.content.view.Point2D)20 Graph (org.kie.workbench.common.stunner.core.graph.Graph)9 ArrayList (java.util.ArrayList)8 Metadata (org.kie.workbench.common.stunner.core.diagram.Metadata)7 HasBounds (org.kie.workbench.common.stunner.core.graph.content.HasBounds)7 Connection (org.kie.workbench.common.stunner.core.graph.content.view.Connection)7 Dock (org.kie.workbench.common.stunner.core.graph.content.relationship.Dock)6 NodeImpl (org.kie.workbench.common.stunner.core.graph.impl.NodeImpl)6 Before (org.junit.Before)5 Definition (org.kie.workbench.common.stunner.core.graph.content.definition.Definition)5 ViewImpl (org.kie.workbench.common.stunner.core.graph.content.view.ViewImpl)5 List (java.util.List)4 Ignore (org.junit.Ignore)4 Lane (org.kie.workbench.common.stunner.bpmn.definition.Lane)4