@Override public boolean containmentAllowed(final WiresContainer wiresContainer, final WiresShape[] wiresShapes) { final WiresShape wiresShape = wiresShapes[0]; if (!isWiresViewAccept(wiresContainer, wiresShape)) { return false; } final Node childNode = WiresUtils.getNode(getCanvasHandler(), wiresShape); final Node parentNode = WiresUtils.getNode(getCanvasHandler(), wiresContainer); return allow(parentNode, new Node[]{childNode}); }
@Override public LienzoCanvasView delete(final ShapeView<?> shape) { if (WiresUtils.isWiresShape(shape)) { layer.delete((WiresShape) shape); } else if (WiresUtils.isWiresConnector(shape)) { layer.delete((WiresConnector) shape); } else { return super.delete(shape); } return this; }
public static void assertShapeGroup(final IDrawable<?> shape, final String group) { final UserData ud = assertUserData(shape); ud.setGroup(group); }
public static boolean isWiresShape(final WiresContainer wiresShape) { return isWiresLayer(wiresShape) || (null != wiresShape && null != wiresShape.getContainer().getUserData() && WiresCanvas.WIRES_CANVAS_GROUP_ID.equals(getShapeGroup(wiresShape.getContainer()))); }
@Override public WiresCanvasView add(final ShapeView<?> shapeView) { if (WiresUtils.isWiresShape(shapeView)) { WiresShape wiresShape = (WiresShape) shapeView; getLayer().getWiresManager().register(wiresShape, false); WiresUtils.assertShapeGroup(wiresShape.getGroup(), WiresCanvas.WIRES_CANVAS_GROUP_ID); } else if (WiresUtils.isWiresConnector(shapeView)) { //Don't render connectors } else { super.add(shapeView); } return this; }
@Override @SuppressWarnings("unchecked") public boolean headConnectionAllowed(final WiresConnection head, final WiresShape shape) { final Edge<ViewConnector<?>, Node> edge = WiresUtils.getEdge(getCanvasHandler(), head.getConnector()); final Node sourceNode = WiresUtils.getNode(getCanvasHandler(), shape); return allowSource(sourceNode, edge, createConnection(sourceNode)); }
public LienzoLayer add(final WiresConnector wiresConnector) { wiresManager.register(wiresConnector); WiresUtils.assertShapeGroup(wiresConnector.getGroup(), WiresCanvas.WIRES_CANVAS_GROUP_ID); return this; }
protected boolean isWiresViewAccept(final WiresContainer wiresContainer, final WiresShape wiresShape) { return WiresUtils.isWiresShape(wiresContainer) || WiresUtils.isWiresShape(wiresShape); }
@Override @SuppressWarnings("unchecked") public T setUUID(final String uuid) { this.uuid = uuid; WiresUtils.assertShapeUUID(this.getGroup(), uuid); return cast(); }
@Override public Point2D getShapeAbsoluteLocation() { return WiresUtils.getAbsolute(getGroup()); }
@Override @SuppressWarnings("unchecked") public boolean tailConnectionAllowed(final WiresConnection tail, final WiresShape shape) { final Edge<ViewConnector<?>, Node> edge = WiresUtils.getEdge(getCanvasHandler(), tail.getConnector()); final Node targetNode = WiresUtils.getNode(getCanvasHandler(), shape); return allowTarget(targetNode, edge, createConnection(targetNode)); } };
public LienzoLayer add(final WiresShape wiresShape) { wiresManager.register(wiresShape); wiresManager.getMagnetManager().createMagnets(wiresShape, MAGNET_CARDINALS); WiresUtils.assertShapeGroup(wiresShape.getGroup(), WiresCanvas.WIRES_CANVAS_GROUP_ID); return this; }
protected boolean isWiresParentAccept(final WiresContainer wiresContainer) { return WiresUtils.isWiresShape(wiresContainer); }
@Override public T setUUID(final String uuid) { this.uuid = uuid; ShapeViewUserDataEncoder.get().setShapeViewChildrenIds(uuid, getGroup()); WiresUtils.assertShapeUUID(this.getGroup(), uuid); return cast(); }
@Override public Point2D getShapeAbsoluteLocation() { return WiresUtils.getAbsolute(getContainer()); }
@Override public LienzoCanvasView add(final ShapeView<?> shape) { if (WiresUtils.isWiresShape(shape)) { layer.add((WiresShape) shape); } else if (WiresUtils.isWiresConnector(shape)) { layer.add((WiresConnector) shape); } else { return super.add(shape); } return this; }
@Override @SuppressWarnings("unchecked") public boolean acceptHead(final WiresConnection head, final WiresMagnet wiresMagnet) { final Edge edge = WiresUtils.getEdge(getCanvasHandler(), head.getConnector()); final Node sourceNode = WiresUtils.getNode(getCanvasHandler(), wiresMagnet); final Connection connection = createConnection(head, wiresMagnet); return acceptSource(sourceNode, edge, connection); }
private CaseManagementShapeView makeWiresShape(Optional<String> uuid) { final CaseManagementShapeView shape = new CaseManagementShapeView("mock", new SVGPrimitiveShape(new Rectangle(0d, 0d)), 0d, 0d, false); uuid.ifPresent(shape::setUUID); WiresUtils.assertShapeGroup(shape.getGroup(), WiresCanvas.WIRES_CANVAS_GROUP_ID); return shape; }
protected Command<AbstractCanvasHandler, CanvasViolation> makeAddMutationCommand(final WiresShape shape, final WiresContainer container, final OptionalInt index, final Optional<WiresContainer> originalContainer, final OptionalInt originalIndex) { final Node parent = WiresUtils.getNode(getCanvasHandler(), container); final Node child = WiresUtils.getNode(getCanvasHandler(), shape); final Optional<Node> originalParent = originalContainer.flatMap((c) -> Optional.ofNullable(WiresUtils.getNode(getCanvasHandler(), c))); // Set relationship. return getSetEdgeCommand(parent, child, index, originalParent, originalIndex); } }
private void handleConnections(final CompositeCommand.Builder<AbstractCanvasHandler, CanvasViolation> commandBuilder, final Node<View<?>, Edge> node, final Supplier<Connection> connectionSupplier, final Supplier<CanvasCommand<AbstractCanvasHandler>> commandSupplier) { final Connection connection = connectionSupplier.get(); if (Objects.isNull(connection) || !(connection instanceof MagnetConnection)) { return; } final MagnetConnection magnetConnection = (MagnetConnection) connection; magnetConnection.getMagnetIndex().ifPresent(index -> { final Shape shape = canvasHandler.getCanvas().getShape(node.getUUID()); Optional.ofNullable(WiresUtils.isWiresShape(shape.getShapeView()) ? (WiresShape) shape.getShapeView() : null) .ifPresent(wiresShape -> { final WiresMagnet magnet = wiresShape.getMagnets().getMagnet(index); magnetConnection.setLocation(new Point2D(magnet.getX(), magnet.getY())); commandBuilder.addCommand(commandSupplier.get()); }); }); }