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());
}
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"));
}
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];
}
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));
}
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);
}
Aggregations