@Override
	public Dimension minimumLayoutSize(Container parent) {
		Insets insets = getInsets();
		int count = getComponentCount();
		int width = 0;
		int height = 0;
		boolean foundTab = false;
		for (int i = 0; i < count; i++) {
			Component component = getComponent(i);
			if (component instanceof DockTab) {
				if (foundTab) {
					continue;
				}
				foundTab = true;
			}
			Dimension size = component.getPreferredSize();
			width += (component instanceof DockTab ? MINIMUM_TAB_WIDTH : size.width) + GAP;
			if (height < size.height) {
				height = size.height;
			}
		}
		width -= GAP;
		if (width < 0) {
			width = 0;
		}
		return new Dimension(insets.left + width + insets.right, insets.top + height + insets.bottom);
	}