private Shape getShape(final String uuid) { return getCanvas().getShape(uuid); }
protected void deregister(final String uuid) { final Shape shape = getSelectionControl().getCanvas().getShape(uuid); final ViewHandler<?> handler = handlers.get(uuid); doDeregisterHandler(shape, handler); }
/** * De-registers an element from the graph structure and from the canvas. * @param element The element to de-register and remove from the canvas. * @param fireEvents If canvas and canvas handled registration events must be fired. */ public void deregister(final Element element, final boolean fireEvents) { final Shape shape = getCanvas().getShape(element.getUUID()); if (Objects.isNull(shape)) { //already not exists on canvas return; } deregister(shape, element, fireEvents); }
@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; }
@SuppressWarnings("unchecked") public void applyElementMutation(final Element candidate, final boolean applyPosition, final boolean applyProperties, final MutationContext mutationContext) { if (null != candidate && !isCanvasRoot(candidate)) { final Shape shape = getCanvas().getShape(candidate.getUUID()); applyElementMutation(shape, candidate, applyPosition, applyProperties, mutationContext); } }
@SuppressWarnings("unchecked") private void updateViewShapesState(Collection<String> uuids) { uuids.stream() .map(uuid -> getCanvas().getShape(uuid)) .filter(Objects::nonNull) .forEach(shape -> { final boolean isSelected = isSelected(shape.getUUID()); if (isSelected && isReadonly()) { shape.applyState(ShapeState.HIGHLIGHT); } else if (isSelected) { shape.applyState(ShapeState.SELECTED); } else { shape.applyState(ShapeState.NONE); } }); getCanvas().focus(); }
@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); } }
@Override protected void onRegister(final Element element) { super.onRegister(element); final Shape<?> shape = getSelectionControl().getCanvas().getShape(element.getUUID()); if (null != shape) { final ShapeView shapeView = shape.getShapeView(); if (shapeView instanceof HasEventHandlers) { final HasEventHandlers hasEventHandlers = (HasEventHandlers) shapeView; if (hasEventHandlers.supports(ViewEventType.MOUSE_CLICK)) { final MouseClickHandler clickHandler = new MouseClickHandler() { @Override public void handle(final MouseClickEvent event) { if (event.isButtonLeft() || event.isButtonRight()) { singleSelect(element); } } }; hasEventHandlers.addHandler(ViewEventType.MOUSE_CLICK, clickHandler); registerHandler(shape.getUUID(), clickHandler); } } } }
if (null != element.asNode() && checkNotRegistered(element)) { final AbstractCanvas<?> canvas = canvasHandler.getAbstractCanvas(); final Shape<?> shape = canvas.getShape(element.getUUID()); final ShapeView shapeView = shape.getShapeView();
final Shape<?> sourceNodeShape = getCanvas().getShape(sourceNode.getUUID());