@Override public boolean isCanvasRoot(final Element parent) { return wrapped.isCanvasRoot(parent); }
@Test public void checkIsCanvasRootDelegatesToWrapped() { final Element parent = mock(Element.class); proxy.isCanvasRoot(parent); verify(wrapped).isCanvasRoot(eq(parent)); }
@Override @SuppressWarnings("unchecked") public void undock(final Element target, final Element child) { final String targetUUID = target.getUUID(); final String childUUID = child.getUUID(); if (!isCanvasRoot(targetUUID)) { final Shape targetShape = getCanvas().getShape(targetUUID); final Shape childShape = getCanvas().getShape(childUUID); if (Objects.nonNull(targetShape) && Objects.nonNull(childShape)) { getCanvas().undock(targetShape, childShape); } } }
@Override public boolean dock(final Element parent, final Element child) { if (!isCanvasRoot(parent)) { final Shape parentShape = getCanvas().getShape(parent.getUUID()); final Shape childShape = getCanvas().getShape(child.getUUID()); try { getCanvas().dock(parentShape, childShape); return true; } catch (Exception e) { LOGGER.fine("Error docking node " + child.getUUID()); return false; } } return false; }
@Override @SuppressWarnings("unchecked") public void removeChild(final Element parent, final Element child) { final String parentUUID = parent.getUUID(); final String childUUID = child.getUUID(); final Shape childShape = getCanvas().getShape(childUUID); if (Objects.isNull(childShape)) { return; } if (!isCanvasRoot(parentUUID)) { final Shape parentShape = getCanvas().getShape(parentUUID); if (Objects.isNull(parentShape)) { return; } getCanvas().deleteChild(parentShape, childShape); } else { // -- Special case when parent is the canvas root -- // Ensure the shape is removed from the layer, but no need to deregister any // handlers ( f.i. using canvas#removeShape() method ). getCanvas().deleteChild(childShape); } }
@Override @SuppressWarnings("unchecked") public void addChild(final Element parent, final Element child) { final Shape childShape = getCanvas().getShape(child.getUUID()); if (!isCanvasRoot(parent)) { final Shape parentShape = getCanvas().getShape(parent.getUUID()); getCanvas().addChild(parentShape, childShape); } else { // -- Special case when parent is the canvas root -- // Ensure the shape is added into the layer, but no need to register it again and generate new // handlers ( f.i. using canvas#addShape() method ). getCanvas().addChild(childShape); } }