private void recalculateAll() {
        // Calculate the position and size of all layouts.
        positionAndSizeMap.clear();
        // Add outer splitters to control the canvas size.
        if (designMode) {
            if (!layoutConstraints.isFitWidth()) {
                addCanvasSplit(outerAcrossSplit, outerSize, Dimension.X);
            }
            if (!layoutConstraints.isFitHeight()) {
                addCanvasSplit(outerDownSplit, outerSize, Dimension.Y);
            }
        }
        // Recalculate widgets and splitters.
        recalculate(layoutConfig, 0, 0, outerSize.getWidth(), outerSize.getHeight());
    }
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