package com.revolsys.swing.component;
import java.awt.Component;
import java.awt.LayoutManager;
import javax.swing.BorderFactory;
import org.jdesktop.swingx.JXPanel;
import org.jdesktop.swingx.ScrollableSizeHint;
import org.jdesktop.swingx.VerticalLayout;
import com.revolsys.swing.SwingUtil;
public class BasePanel extends JXPanel {
private static final long serialVersionUID = 1L;
public static BasePanel newPanelTitled(final String title) {
final BasePanel panel = new BasePanel();
final javax.swing.border.TitledBorder border = BorderFactory.createTitledBorder(title);
panel.setBorder(border);
return panel;
}
public static BasePanel newPanelTitled(final String title, final Component... components) {
final BasePanel panel = new BasePanel(components);
final javax.swing.border.TitledBorder border = BorderFactory.createTitledBorder(title);
panel.setBorder(border);
return panel;
}
public static BasePanel newPanelTitled(final String title, final LayoutManager layoutManager,
final Component... components) {
final BasePanel panel = new BasePanel(layoutManager, components);
final javax.swing.border.TitledBorder border = BorderFactory.createTitledBorder(title);
panel.setBorder(border);
return panel;
}
public BasePanel() {
this(true);
}
public BasePanel(final boolean isDoubleBuffered) {
this(new VerticalLayout(), isDoubleBuffered);
}
public BasePanel(final Component... components) {
this();
for (final Component component : components) {
add(component);
}
}
public BasePanel(final LayoutManager layout) {
this(layout, true);
}
public BasePanel(final LayoutManager layout, final boolean isDoubleBuffered) {
super(layout, isDoubleBuffered);
setScrollableWidthHint(ScrollableSizeHint.FIT);
setScrollableHeightHint(ScrollableSizeHint.PREFERRED_STRETCH);
setOpaque(false);
}
public BasePanel(final LayoutManager layout, final Component... components) {
this(layout);
for (final Component component : components) {
add(component);
}
}
public BasePanel addComponents(final Component... components) {
for (final Component component : components) {
add(component);
}
return this;
}
public BasePanel addComponents(final LayoutManager layout, final Component... components) {
setLayout(layout);
return addComponents(components);
}
public void addWithLabel(final String label, final Component component) {
if (component != null) {
SwingUtil.addLabel(this, label);
add(component);
}
}
}