package magic.ui.screen.deck.hand;
import magic.ui.screen.HandZoneLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import magic.data.MagicIcon;
import magic.translate.MText;
import magic.ui.FontsAndBorders;
import magic.ui.helpers.ImageHelper;
import magic.ui.screen.widget.ActionBarButton;
import magic.ui.screen.widget.BigDialButton;
import net.miginfocom.swing.MigLayout;
@SuppressWarnings("serial")
class OptionsPanel extends JPanel {
// translatable UI text (prefix with _S).
private static final String _S1 = "Layout";
private static final Icon MENU_ICON =
ImageHelper.getRecoloredIcon(MagicIcon.OPTION_MENU, Color.BLACK, Color.WHITE);
private static final Icon CLOSE_MENU =
ImageHelper.getRecoloredIcon(MagicIcon.CLOSE, Color.BLACK, Color.WHITE);
private boolean isMenuOpen = false;
private final BigDialButton layoutButton;
private final ActionBarButton menuButton;
private final ActionBarButton closeButton;
OptionsPanel(final SampleHandScreen listener) {
layoutButton = new BigDialButton(
HandZoneLayout.values().length,
HandZoneLayout.getLayout().ordinal(),
new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
listener.doSwitchLayout();
}
}
);
menuButton = new ActionBarButton((ImageIcon) MENU_ICON, new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
doToggleMenuOptions();
}
});
closeButton = new ActionBarButton((ImageIcon) CLOSE_MENU, new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
doToggleMenuOptions();
}
});
setLayout(new MigLayout(
"flowy, wrap 2, gap 0 2, insets 0 0 2 0, ax right, ay center"
));
setLayout();
setOpaque(false);
}
private void setLayout() {
removeAll();
if (isMenuOpen) {
add(getLabel(MText.get(_S1)), "ax center");
add(layoutButton, "h 24!, gapbottom 2");
add(closeButton, "spany 2, gapbottom 2");
} else {
add(menuButton, "spany 2");
}
revalidate();
repaint();
}
private void doToggleMenuOptions() {
isMenuOpen = !isMenuOpen;
setLayout();
}
private JLabel getLabel(String text) {
JLabel lbl = new JLabel(text);
lbl.setForeground(Color.WHITE);
lbl.setFont(FontsAndBorders.FONT0);
lbl.setHorizontalAlignment(SwingConstants.CENTER);
return lbl;
}
}