@Override public void onError(final ClientRuntimeError error) { commandsCallback.onError(error); } });
@Override protected void doInit() { this.elementBuilderControl.init(canvasHandler); }
@Override protected void doDestroy() { this.elementBuilderControl.destroy(); }
@Inject public DefaultDiagramEditor(final DefinitionUtils definitionUtils, final DiagramViewer<Diagram, AbstractCanvasHandler> viewer, final @Any ManagedInstance<CanvasCommandManager<AbstractCanvasHandler>> commandManagers, final @Any ManagedInstance<LocationControl<AbstractCanvasHandler, Element>> locationControls, final @Any ManagedInstance<ResizeControl<AbstractCanvasHandler, Element>> resizeControls, final @Any @Observer ManagedInstance<ElementBuilderControl<AbstractCanvasHandler>> elementBuilderControls, final @Any ManagedInstance<NodeBuilderControl<AbstractCanvasHandler>> nodeBuilderControls, final @Any ManagedInstance<EdgeBuilderControl<AbstractCanvasHandler>> edgeBuilderControls, final @Any ManagedInstance<ControlPointControl<AbstractCanvasHandler>> controlPointControls, final @Any ManagedInstance<ConnectionAcceptorControl<AbstractCanvasHandler>> connectionAcceptorControls, final @Any ManagedInstance<ContainmentAcceptorControl<AbstractCanvasHandler>> containmentAcceptorControls, final @Any ManagedInstance<DockingAcceptorControl<AbstractCanvasHandler>> dockingAcceptorControls) { this.definitionUtils = definitionUtils; this.viewer = viewer; this.commandManagers = commandManagers; this.locationControls = locationControls; this.resizeControls = resizeControls; this.elementBuilderControls = elementBuilderControls; this.nodeBuilderControls = nodeBuilderControls; this.edgeBuilderControls = edgeBuilderControls; this.controlPointControls = controlPointControls; this.connectionAcceptorControls = connectionAcceptorControls; this.containmentAcceptorControls = containmentAcceptorControls; this.dockingAcceptorControls = dockingAcceptorControls; }
@Inject public NodeBuilderControlImpl(final ClientDefinitionManager clientDefinitionManager, final CanvasCommandFactory<AbstractCanvasHandler> commandFactory, final @Default @Element AbstractElementBuilderControl elementBuilderControl) { this.clientDefinitionManager = clientDefinitionManager; this.commandFactory = commandFactory; this.elementBuilderControl = elementBuilderControl; }
@SuppressWarnings("unchecked") public void getElementCommands(final Element element, final Node<View<?>, Edge> parent, final ParentAssignment parentAssignment, final double x, final double y, final CommandsCallback commandsCallback) { //Command<AbstractCanvasHandler, CanvasViolation> command = null; final List<Command<AbstractCanvasHandler, CanvasViolation>> commandList = new LinkedList<>(); if (element instanceof Node) { final Node<View<?>, Edge> node = (Node<View<?>, Edge>) element; commandList.addAll(getNodeBuildCommands(node, parent, parentAssignment, x, y)); } else if (element instanceof Edge && null != parent) { commandList.add(canvasCommandFactory.addConnector(parent, (Edge) element, forElement(parent), getShapeSetId())); } else { throw new RuntimeException("Unrecognized element type for " + element); } commandsCallback.onComplete(element.getUUID(), commandList); }
@Override public void onSuccess(final Element element) { getElementCommands(element, parent, getParentAssignment(parent, definition), x, y, new CommandsCallback() { @Override public void onComplete(final String uuid, final List<Command<AbstractCanvasHandler, CanvasViolation>> commands) { commandsCallback.onComplete(uuid, commands); } @Override public void onError(final ClientRuntimeError error) { commandsCallback.onError(error); } }); }
private List<CanvasCommand<AbstractCanvasHandler>> getNoParentCommands(Node<View<?>, Edge> node, double x, double y) { return Arrays.asList(canvasCommandFactory.addNode(node, getShapeSetId()), getUpdatePositionCommand(x, y, node)); }
/** * Gets canvas transformed location. * @param clientX The clientX coordinate value. * @param clientY The clientY coordinate value. * @return the transformed location into the canvas. */ public Point2D getTransformedLocation(final double clientX, final double clientY) { final double x = getRelativeX(clientX); final double y = getRelativeY(clientY); return canvasHandler.getAbstractCanvas().getTransform().inverse(x, y); }
@Test public void checkGetParentUseCanvas() { control.getParent(10.0, 20.0); verify(canvasHandler, times(1)).getElementAt(eq(10.0, 0.0), eq(20.0, 0.0)); } }
/** * Gets the mouse x-position relative to the canvas element. * @param clientX The event's clientX value. * @return the relative x-position */ private double getRelativeX(final double clientX) { return clientX - getCanvasElement().getAbsoluteLeft() + getCanvasElement().getScrollLeft() + getCanvasElement().getOwnerDocument().getScrollLeft(); }
@Override public void setCommandManagerProvider(final RequiresCommandManager.CommandManagerProvider<AbstractCanvasHandler> provider) { this.elementBuilderControl.setCommandManagerProvider(provider); }
@Override public void onError(final ClientRuntimeError error) { buildCallback.onError(error); // Notify processing ends. fireProcessingCompleted(); } });
public void buildShapeAt(final Object definition, final double x, final double y) { final ElementBuildRequest<AbstractCanvasHandler> request = new ElementBuildRequestImpl(x, y, definition); ObserverBuilderControl.this.build(request, new BuildCallback() { @Override public void onSuccess(final String uuid) { canvasSelectionEvent.fire(new CanvasSelectionEvent(canvasHandler, uuid)); } @Override public void onError(final ClientRuntimeError error) { LOGGER.log(Level.WARNING, error.toString()); } }); }
@Override public boolean allows(final NodeBuildRequest request) { final double x = request.getX(); final double y = request.getY(); final Node<? extends View<?>, Edge> node = request.getNode(); if (null != node) { final ElementBuildRequest<AbstractCanvasHandler> request1 = new ElementBuildRequestImpl(x, y, node.getContent().getDefinition()); return elementBuilderControl.allows(request1); } return false; }
@DMNEditor @Dependent @Observer public class ObserverBuilderControl extends org.kie.workbench.common.stunner.core.client.canvas.controls.builder.impl.ObserverBuilderControl { @Inject public ObserverBuilderControl(final ClientDefinitionManager clientDefinitionManager, final ClientFactoryService clientFactoryServices, final RuleManager ruleManager, final @DMNEditor CanvasCommandFactory<AbstractCanvasHandler> canvasCommandFactory, final ClientTranslationMessages translationMessages, final GraphBoundsIndexer graphBoundsIndexer, final Event<CanvasSelectionEvent> canvasSelectionEvent) { super(clientDefinitionManager, clientFactoryServices, ruleManager, canvasCommandFactory, translationMessages, graphBoundsIndexer, canvasSelectionEvent); } }
/** * Build element on the canvas, either a node or an edge. */ @Default @Element @Dependent public class ElementBuilderControlImpl extends AbstractElementBuilderControl { @Inject public ElementBuilderControlImpl(final ClientDefinitionManager clientDefinitionManager, final ClientFactoryService clientFactoryServices, final RuleManager ruleManager, final CanvasCommandFactory<AbstractCanvasHandler> canvasCommandFactory, final ClientTranslationMessages translationMessages, final GraphBoundsIndexer graphBoundsIndexer) { super(clientDefinitionManager, clientFactoryServices, ruleManager, canvasCommandFactory, translationMessages, graphBoundsIndexer); } }
protected void setup() { this.control = getBuilderControl(); this.control.init(canvasHandler); when(canvasHandler.getElementAt(anyDouble(), anyDouble())).thenReturn(Optional.empty()); }
/** * Gets the mouse y-position relative to the canvas element. * @param clientY The event's clienty value. * @return the relative y-position */ private double getRelativeY(final double clientY) { return clientY - getCanvasElement().getAbsoluteTop() + getCanvasElement().getScrollTop() + getCanvasElement().getOwnerDocument().getScrollTop(); }
@Inject public CaseManagementNodeBuilderControl(final ClientDefinitionManager clientDefinitionManager, final @CaseManagementEditor CanvasCommandFactory<AbstractCanvasHandler> commandFactory, final @Element @CaseManagementEditor AbstractElementBuilderControl elementBuilderControl) { super(clientDefinitionManager, commandFactory, elementBuilderControl); } }