private void addCanvasSplit(final SplitInfo splitInfo,
                                final Size size,
                                final int dim) {
        // Add data to position a split during layout.
        final PositionAndSize positionAndSize =
                positionAndSizeMap.computeIfAbsent(splitInfo, k -> new PositionAndSize());

        positionAndSize.setPos(dim, size.get(dim) - SPLIT_OFFSET);
        positionAndSize.setSize(dim, SPLIT_SIZE);
        final int opposite = Dimension.opposite(dim);
        positionAndSize.setPos(opposite, 0);
        positionAndSize.setSize(opposite, size.get(opposite) + SPLIT_SIZE);
    }
Tests the supplied layout to see if it is the current mouse target and
returns mouse target if it is.

@param x               The mouse x coordinate.
@param y               The mouse y coordinate.
@param splitter        True if the layout is a splitter. Splitters are targeted
                       outside their rect.
@param layoutConfig    The layout data to test to see if it is a target.
@param positionAndSize The position and size of the layout being tested.
@return The mouse target if the tested layout is the target, else null.
stroom-core-client/src/main/java/stroom/dashboard/client/flexlayout/FlexLayout.java