package magic.ui.widget.duel.choice; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JPanel; import magic.data.MagicIcon; import magic.model.MagicManaCost; import magic.model.MagicSource; import magic.ui.MagicImages; import magic.ui.screen.duel.game.SwingGameController; import magic.translate.MText; import magic.ui.widget.duel.viewer.UserActionPanel; import magic.ui.FontsAndBorders; import magic.ui.widget.message.TextLabel; @SuppressWarnings("serial") public class MultiKickerChoicePanel extends JPanel implements ActionListener { // translatable strings private static final String _S1 = "Choose how many times to pay the %s cost of %s."; private static final Dimension BUTTON_DIMENSION=new Dimension(50,35); private final SwingGameController controller; private final JButton leftButton; private final JButton numberButton; private final JButton rightButton; private final int maximumCount; private int count; public MultiKickerChoicePanel(final SwingGameController controller, final MagicSource source, final MagicManaCost cost, final int maximumCount, final String name) { this.controller=controller; this.maximumCount=maximumCount; count=maximumCount; setLayout(new BorderLayout()); setOpaque(false); final String message = MText.get(_S1, name, cost.getText()); final TextLabel textLabel=new TextLabel(SwingGameController.getMessageWithSource(source,message),UserActionPanel.TEXT_WIDTH,true); add(textLabel,BorderLayout.CENTER); final JPanel buttonPanel=new JPanel(new FlowLayout(FlowLayout.CENTER,10,0)); buttonPanel.setOpaque(false); buttonPanel.setBorder(FontsAndBorders.EMPTY_BORDER); add(buttonPanel,BorderLayout.SOUTH); leftButton=new JButton("",MagicImages.getIcon(MagicIcon.LEFT)); leftButton.setPreferredSize(BUTTON_DIMENSION); leftButton.addActionListener(this); leftButton.setFocusable(false); buttonPanel.add(leftButton); numberButton=new JButton(Integer.toString(count)); numberButton.setPreferredSize(BUTTON_DIMENSION); numberButton.addActionListener(this); numberButton.setFocusable(false); buttonPanel.add(numberButton); rightButton=new JButton(MagicImages.getIcon(MagicIcon.RIGHT)); rightButton.setPreferredSize(BUTTON_DIMENSION); rightButton.addActionListener(this); rightButton.setFocusable(false); buttonPanel.add(rightButton); } public int getKicker() { return count; } @Override public void actionPerformed(final ActionEvent event) { final Object source=event.getSource(); if (source==leftButton) { if (count>0) { count--; numberButton.setText(Integer.toString(count)); numberButton.repaint(); } } else if (source==rightButton) { if (count<maximumCount) { count++; numberButton.setText(Integer.toString(count)); numberButton.repaint(); } } else { controller.actionClicked(); } } }