package magic.ui.screen.deck.editor;
import java.awt.Color;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import magic.data.MagicIcon;
import magic.ui.MagicImages;
import magic.translate.MText;
import magic.ui.screen.widget.ActionBarButton;
import magic.ui.FontsAndBorders;
import net.miginfocom.swing.MigLayout;
@SuppressWarnings("serial")
class CardQuantityActionPanel extends JPanel {
// translatable strings
private static final String _S1 = "Add card";
private static final String _S2 = "Add selected card to deck (or left click row).";
private static final String _S3 = "Remove card";
private static final String _S4 = "Remove selected card from deck (or right click row).";
private static final String _S5 = "Increment";
private static final String _S6 = "Increase the quantity by one. Maximum is ten.";
private static final String _S7 = "Decrement";
private static final String _S8 = "Decrease the quantity by one. Minium is one.";
private static final String _S9 = "Must use this button to remove last instance of a card.";
// UI components
private final ActionBarButton addButton;
private final ActionBarButton minusButton;
private final ActionBarButton incrementButton;
private final ActionBarButton decrementButton;
private final JLabel quantityLabel;
//
private final MigLayout migLayout = new MigLayout();
private int max_quantity = 10;
private int quantity = 1;
CardQuantityActionPanel(final AbstractAction plusButtonAction, final AbstractAction minusButtonAction) {
setOpaque(false);
addButton = new ActionBarButton(
MagicImages.getIcon(MagicIcon.PLUS_ICON),
MText.get(_S1),
MText.get(_S2),
plusButtonAction);
minusButton = new ActionBarButton(
MagicImages.getIcon(MagicIcon.MINUS_ICON),
MText.get(_S3),
MText.get(String.format("%s<br>%s", MText.get(_S4), MText.get(_S9))),
minusButtonAction);
incrementButton = new ActionBarButton(
MagicImages.getIcon(MagicIcon.ARROWUP),
MText.get(_S5),
MText.get(_S6),
new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
quantity++;
if (quantity > max_quantity) {
quantity = max_quantity;
}
quantityLabel.setText(Integer.toString(quantity));
}
});
decrementButton = new ActionBarButton(
MagicImages.getIcon(MagicIcon.ARROWDOWN),
MText.get(_S7),
MText.get(_S8),
new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
quantity--;
if (quantity < 1) {
quantity = 1;
}
quantityLabel.setText(Integer.toString(quantity));
}
});
quantityLabel = new JLabel(Integer.toString(quantity));
quantityLabel.setForeground(Color.WHITE);
quantityLabel.setFont(FontsAndBorders.FONT_MENU_BUTTON);
quantityLabel.setHorizontalAlignment(SwingConstants.CENTER);
setLayout(migLayout);
refreshLayout();
}
private void refreshLayout() {
removeAll();
final String w = "w " + MainViewsPanel.DECK_ACTION_PANEL_WIDTH + "!";
migLayout.setLayoutConstraints("insets 0, gap 0, flowy");
add(addButton, w);
add(minusButton, w);
add(incrementButton, w + ", gaptop 10");
add(quantityLabel, w);
add(decrementButton, w);
}
int getQuantity() {
return quantity;
}
}