private void insertSplitter(final Widget widget, final Widget before) {
        assert getChildren().size() > 0 : "Can't add a splitter before any children";

        final LayoutData layout = (LayoutData) widget.getLayoutData();
        Splitter splitter = null;
        switch (getResolvedDirection(layout.direction)) {
            case WEST:
                splitter = new HSplitter(widget, false, hSplitterIndex++);
                break;
            case EAST:
                splitter = new HSplitter(widget, true, hSplitterIndex++);
                break;
            case NORTH:
                splitter = new VSplitter(widget, false, vSplitterIndex++);
                break;
            case SOUTH:
                splitter = new VSplitter(widget, true, vSplitterIndex++);
                break;
            default:
                assert false : "Unexpected direction";
        }

        super.insert(splitter, layout.direction, SPLITTER_SIZE, before);
        splitter.getElement().getParentElement().setClassName("thinSplitLayoutPanel-Dragger-Outer");
    }
Sets the minimum allowable size for the given widget.
<p>
<p>
Its associated splitter cannot be dragged to a position that would make
it smaller than this size. This method has no effect for the
{@link Direction#CENTER} widget.
</p>

@param child   the child whose minimum size will be set
@param minSize the minimum size for this widget
stroom-core-client-widget/src/main/java/com/google/gwt/user/client/ui/ThinSplitLayoutPanel.java