@Override protected void doDestroy() { if (null != layerClickHandler) { getCanvas().removeHandler(layerClickHandler); this.layerClickHandler = null; } items.clear(); }
protected void deregister(final String uuid) { final Shape shape = getSelectionControl().getCanvas().getShape(uuid); final ViewHandler<?> handler = handlers.get(uuid); doDeregisterHandler(shape, handler); }
@Override protected void doInit() { // Click handler for the canvas area - cleans current selection, if any. final MouseClickHandler clickHandler = new MouseClickHandler() { @Override public void handle(final MouseClickEvent event) { if (event.isButtonLeft() || event.isButtonRight()) { clearSelection(false); final String canvasRootUUID = getRootUUID(); fireCanvasClear(); if (null != canvasRootUUID) { selectionEventConsumer.accept(new CanvasSelectionEvent(canvasHandler, canvasRootUUID)); } } } }; getCanvas().addHandler(ViewEventType.MOUSE_CLICK, clickHandler); this.layerClickHandler = clickHandler; }
@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(); }
public void onShapeRemoved(final CanvasShapeRemovedEvent shapeRemovedEvent) { checkNotNull("shapeRemovedEvent", shapeRemovedEvent); if (null == canvasHandler) { return; } if (getCanvas().equals(shapeRemovedEvent.getCanvas())) { items.remove(shapeRemovedEvent.getShape().getUUID()); } }
@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); } } } }