code: public Shape<?> findShapeAtPoint(final int x, final int y)
      {
          if (isVisible())
          {
              final SelectionLayer selection = getSelectionLayer();
  
              if (null != selection)
              {
                  final ImageDataPixelColor rgba = selection.getContext().getImageDataPixelColor(x, y);// x,y is adjusted to canvas coordinates in event dispatch
  
                  if (null != rgba)
                  {
                      if (rgba.getA() != 255)
                      {
                          return null;
                      }
                      final Shape<?> shape = m_shape_color_map.get(rgba.toBrowserRGB());
  
                      if ((null != shape) && (shape.isVisible()))
                      {
                          return shape;
                      }
                  }
              }
          }
          return null;
      }
docs: Looks at the {@link SelectionLayer} and attempts to find a {@link Shape} whose alpha
  channel is 255.
  
  @param x
  @param y
  @return {@link Shape}