class CanvasBoundsIndexerImpl implements CanvasBoundsIndexer<AbstractCanvasHandler> {

    @Override
    @SuppressWarnings("unchecked")
    public Node<View<?>, Edge> getAt(final double x,
                                     final double y) {
        final WiresCanvas canvas = (WiresCanvas) canvasHandler.getAbstractCanvas();
        final LienzoLayer lienzoLayer = canvas.getView().getLayer();
        final String viewUUID = LienzoLayerUtils.getUUID_At(lienzoLayer,
                                                            x,
                                                            y);
        if (null != viewUUID && viewUUID.trim().length() > 0) {
            final Shape<?> shape = canvas.getShape(viewUUID);
            if (null != shape) {
                return canvasHandler.getGraphIndex().getNode(shape.getUUID());
            }
        }
        return null;
    }

}