package com.mucommander.ui.macosx;
import java.awt.Graphics;
import java.awt.Insets;
import javax.swing.JTabbedPane;
import javax.swing.plaf.TabbedPaneUI;
import com.apple.laf.AquaTabbedPaneContrastUI;
import com.apple.laf.AquaTabbedPaneUI;
public class TabbedPaneUICustomizer {
private static final Insets EMPTY_INSETS = new Insets(0, 0, 0, 0);
private static final Insets CONTENT_BORDER_INSETS = new Insets(5, 0, 0, 0);
public static void customizeTabbedPaneUI(JTabbedPane tabbedPane) {
TabbedPaneUI tabbedPaneUI = tabbedPane.getUI();
if (tabbedPaneUI instanceof AquaTabbedPaneUI)
tabbedPane.setUI(new CompactAquaTabbedPaneUI());
else if (tabbedPaneUI instanceof AquaTabbedPaneContrastUI)
tabbedPane.setUI(new CompactAquaTabbedPaneContrastUI());
}
private static class CompactAquaTabbedPaneUI extends AquaTabbedPaneUI {
@Override
protected Insets getContentBorderInsets(int arg0) {
return CONTENT_BORDER_INSETS;
}
@Override
protected Insets getTabAreaInsets(int arg0) {
return EMPTY_INSETS;
}
@Override
protected Insets getContentDrawingInsets(int arg0) {
return EMPTY_INSETS;
}
/**
* No content border
*/
@Override
protected void paintContentBorder(final Graphics g, final int tabPlacement, final int selectedIndex) {
}
}
private static class CompactAquaTabbedPaneContrastUI extends AquaTabbedPaneContrastUI {
@Override
protected Insets getContentBorderInsets(int arg0) {
return CONTENT_BORDER_INSETS;
}
@Override
protected Insets getTabAreaInsets(int arg0) {
return EMPTY_INSETS;
}
@Override
protected Insets getContentDrawingInsets(int arg0) {
return EMPTY_INSETS;
}
/**
* No content border
*/
@Override
protected void paintContentBorder(final Graphics g, final int tabPlacement, final int selectedIndex) {
}
}
}