package magic.ui.screen.widget;
import magic.ui.widget.about.AboutPanel;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JComponent;
import javax.swing.JPanel;
import magic.ui.screen.interfaces.IThemeStyle;
import magic.ui.theme.Theme;
import magic.ui.widget.TexturedPanel;
import magic.ui.utility.MagicStyle;
import net.miginfocom.swing.MigLayout;
@SuppressWarnings("serial")
public class ScreenHeaderPanel extends TexturedPanel
implements IThemeStyle {
private class PlaceHolderPanel extends JPanel {
@Override
public boolean isVisible() {
return false;
}
}
public final static int PANEL_HEIGHT = 50;
private final AboutPanel titlePanel;
private JComponent contentPanel = new PlaceHolderPanel();
private JComponent optionsPanel = new PlaceHolderPanel();
public ScreenHeaderPanel(String title) {
this.titlePanel = new AboutPanel(title);
setMinimumSize(new Dimension(getPreferredSize().width, PANEL_HEIGHT));
refreshStyle();
setLayout(new MigLayout(
"insets 0 4 0 0, gap 12, aligny center",
"[33%, fill][fill, grow][33%, fill]",
"[fill, grow]")
);
setLayout();
}
@Override
public void refreshStyle() {
final Color refBG = MagicStyle.getTheme().getColor(Theme.COLOR_TITLE_BACKGROUND);
final Color thisBG = MagicStyle.getTranslucentColor(refBG, 220);
setBackground(thisBG);
}
public void setContent(JComponent aPanel) {
this.contentPanel = aPanel;
setLayout();
}
private void setLayout() {
removeAll();
add(titlePanel);
add(contentPanel);
add(optionsPanel);
revalidate();
}
public void setOptions(JComponent c) {
this.optionsPanel = c;
setLayout();
}
}