@Override
		protected Dimension calculateSize( boolean minimum ) {
			if( isContentEmpty() )
				return calculateTabAreaSize();

			return super.calculateSize( minimum );
		}
Layout manager for wrap tab layout policy (and base class for scroll tab layout policy).
<p>
Component hierarchy for wrap tab layout policy:
<pre>{@code
JTabbedPane
   +- 1...n tab content components
   +- (optional) BasicTabbedPaneUI.TabContainer (extends JPanel)
   |  +- 1..n tab components (shown in tab area)
   +- (optional) ContainerUIResource (extends JPanel)
   |  +- leading component
   +- (optional) ContainerUIResource (extends JPanel)
      +- trailing component
}</pre>
<p>
Instead of using {@code super.layoutContainer(Container)} and fixing some
component bounds, this class implements {@code layoutContainer(Container)}
and moves/resizes components only once.
This avoids that some components are moved/resized twice, which would unnecessary
repaint and relayout tabbed pane. In some special case this resulted in
"endless" layouting and repainting when using nested tabbed panes (top and
bottom tab placement) and RSyntaxTextArea (with enabled line-wrapping) as tab content.
flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTabbedPaneUI.java