class LienzoCanvas extends AbstractCanvas<V> {

    @Override
    public Optional<Shape> getShapeAt(final double x,
                                      final double y) {
        final LienzoLayer lienzoLayer = getView().getLayer();
        final String uuid = LienzoLayerUtils.getUUID_At(lienzoLayer,
                                                        x,
                                                        y);
        return Optional.ofNullable(getShape(uuid));
    }

    protected  LienzoCanvas(final Event<CanvasClearEvent> canvasClearEvent,
                           final Event<CanvasShapeAddedEvent> canvasShapeAddedEvent,
                           final Event<CanvasShapeRemovedEvent> canvasShapeRemovedEvent,
                           final Event<CanvasDrawnEvent> canvasDrawnEvent,
                           final Event<CanvasFocusedEvent> canvasFocusedEvent);

}