public Set<String> lookupTargetNodes(final Graph<?, ? extends Node> graph, final Node<? extends Definition<Object>, ? extends Edge> sourceNode, final String edgeId) { return lookupTargetNodes(graph, sourceNode, edgeId, def -> true); }
@Test @SuppressWarnings("unchecked") public void testLookupTargetNodesWithPredicate() { Predicate<String> filter = TestingGraphInstanceBuilder.DEF1_ID::equals; Set<String> result = tested.lookupTargetNodes(graph.graph, graph.startNode, TestingGraphInstanceBuilder.EDGE1_ID, filter); assertTrue(result.isEmpty()); } }
if (null != defaultConnectorId) { final Predicate<String> definitionsAllowedFilter = profileManager.isDefinitionIdAllowed(metadata); final Set<String> targets = lookup.lookupTargetNodes(diagram.getGraph(), node, defaultConnectorId,
@Test @SuppressWarnings("unchecked") public void testLookupTargetNodes() { Set<String> result = tested.lookupTargetNodes(graph.graph, graph.startNode, TestingGraphInstanceBuilder.EDGE1_ID); assertFalse(result.isEmpty()); assertEquals(1, result.size()); assertEquals(TestingGraphInstanceBuilder.DEF2_ID, result.iterator().next()); }
@Override @SuppressWarnings("unchecked") public Collection<ToolboxAction<AbstractCanvasHandler>> getActions(final AbstractCanvasHandler canvasHandler, final Element<?> element) { final Set<ToolboxAction<AbstractCanvasHandler>> actions = new LinkedHashSet<>(); final Node<Definition<Object>, Edge> node = (Node<Definition<Object>, Edge>) element; final Diagram diagram = canvasHandler.getDiagram(); final String defSetId = diagram.getMetadata().getDefinitionSetId(); final CommonDomainLookups lookup = toolboxDomainLookups.get(defSetId); // Look for the allowed connectors present in the Definition Set. final Set<String> allowedConnectorIds = lookup.lookupTargetConnectors(node); for (final String allowedConnectorId : allowedConnectorIds) { // Append a new action for each connector. actions.add(createConnectorActions.get() .setEdgeId(allowedConnectorId)); // Append a new action for each candidate target node (as from the current connector). final Set<String> defIds = lookup .lookupTargetNodes(diagram.getGraph(), node, allowedConnectorId); defIds.forEach(definitionId -> actions.add(createNodeActions.get() .setEdgeId(allowedConnectorId) .setNodeId(definitionId))); } return actions; }
@Override public void executeAction(final AbstractCanvasHandler canvasHandler, final String selectedNodeId) { final Node sourceNode = CanvasLayoutUtils.getElement(canvasHandler, selectedNodeId).asNode(); final String definitionSetId = canvasHandler.getDiagram().getMetadata().getDefinitionSetId(); final CommonDomainLookups commonDomainLookups = toolboxDomainLookups.get(definitionSetId); final Set<String> connectorDefinitionIds = commonDomainLookups.lookupTargetConnectors(sourceNode); for (final String connectorDefinitionId : connectorDefinitionIds) { final Set<String> targetNodesDefinitionIds = commonDomainLookups.lookupTargetNodes(canvasHandler.getDiagram().getGraph(), sourceNode, connectorDefinitionId); for (final String targetNodeDefinitionId : targetNodesDefinitionIds) { final Object definition = definitionsCacheRegistry.getDefinitionById(targetNodeDefinitionId); if (canAppendNodeOfDefinition(definition)) { generalCreateNodeAction.executeAction(canvasHandler, selectedNodeId, targetNodeDefinitionId, connectorDefinitionId); break; } } } }