package com.revolsys.swing;
import java.awt.Component;
import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import com.revolsys.swing.component.TabClosableTitle;
public class TabbedPane extends JTabbedPane {
private static final long serialVersionUID = 1L;
public TabbedPane() {
super();
}
public TabbedPane(final int tabPlacement) {
super(tabPlacement);
}
public TabbedPane(final int tabPlacement, final int tabLayoutPolicy) {
super(tabPlacement, tabLayoutPolicy);
}
public TabClosableTitle addClosableTab(final String title, final Icon icon,
final Component component, final Runnable closeAction) {
final int tabIndex = getTabCount();
addTab(title, icon, component);
final TabClosableTitle tabTitle = new TabClosableTitle(this, closeAction);
setTabComponentAt(tabIndex, tabTitle);
return tabTitle;
}
public int addTab(final Icon icon, final String toolTipText, Component component,
final boolean useScrollPane) {
if (useScrollPane) {
final JScrollPane scrollPane = new JScrollPane(component);
scrollPane.setBorder(BorderFactory.createEmptyBorder());
component = scrollPane;
}
addTab(null, icon, component);
final int tabIndex = getTabCount() - 1;
setToolTipTextAt(tabIndex, toolTipText);
return tabIndex;
}
public int addTabIcon(final String iconName, final String toolTipText, final Component component,
final boolean useScrollPane) {
final Icon icon = Icons.getIcon(iconName);
return addTab(icon, toolTipText, component, useScrollPane);
}
}