mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
use FButtons instead of FLabels on the AssignDamage dialog so default actions and tabbing work properly
This commit is contained in:
@@ -19,6 +19,8 @@ package forge.gui.match;
|
|||||||
|
|
||||||
import java.awt.Dialog.ModalityType;
|
import java.awt.Dialog.ModalityType;
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
import java.awt.event.MouseAdapter;
|
import java.awt.event.MouseAdapter;
|
||||||
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseEvent;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -33,10 +35,10 @@ import javax.swing.border.LineBorder;
|
|||||||
|
|
||||||
import net.miginfocom.swing.MigLayout;
|
import net.miginfocom.swing.MigLayout;
|
||||||
import forge.Card;
|
import forge.Card;
|
||||||
import forge.Command;
|
|
||||||
import forge.GameEntity;
|
import forge.GameEntity;
|
||||||
import forge.Singletons;
|
import forge.Singletons;
|
||||||
import forge.gui.SOverlayUtils;
|
import forge.gui.SOverlayUtils;
|
||||||
|
import forge.gui.toolbox.FButton;
|
||||||
import forge.gui.toolbox.FLabel;
|
import forge.gui.toolbox.FLabel;
|
||||||
import forge.gui.toolbox.FScrollPane;
|
import forge.gui.toolbox.FScrollPane;
|
||||||
import forge.gui.toolbox.FSkin;
|
import forge.gui.toolbox.FSkin;
|
||||||
@@ -51,7 +53,6 @@ import forge.view.arcane.CardPanel;
|
|||||||
*
|
*
|
||||||
* <br><br><i>(V at beginning of class name denotes a view class.)</i>
|
* <br><br><i>(V at beginning of class name denotes a view class.)</i>
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("serial")
|
|
||||||
public class VAssignDamage {
|
public class VAssignDamage {
|
||||||
// Width and height of blocker dialog
|
// Width and height of blocker dialog
|
||||||
private final int wDlg = 700;
|
private final int wDlg = 700;
|
||||||
@@ -71,9 +72,9 @@ public class VAssignDamage {
|
|||||||
private final JLabel lblTotalDamage = new FLabel.Builder().text("Available damage points: Unknown").build();
|
private final JLabel lblTotalDamage = new FLabel.Builder().text("Available damage points: Unknown").build();
|
||||||
|
|
||||||
// Label Buttons
|
// Label Buttons
|
||||||
private final FLabel lblOK = new FLabel.Builder().text("OK").hoverable(true).opaque(true).fontSize(16).build();
|
private final FButton btnOK = new FButton("OK");
|
||||||
private final FLabel lblReset = new FLabel.Builder().text("Reset").hoverable(true).opaque(true).fontSize(16).build();
|
private final FButton btnReset = new FButton("Reset");
|
||||||
private final FLabel lblAuto = new FLabel.Builder().text("Auto").hoverable(true).opaque(true).fontSize(16).build();
|
private final FButton btnAuto = new FButton("Auto");
|
||||||
|
|
||||||
// Indexes of defenders correspond to their indexes in the damage list and labels.
|
// Indexes of defenders correspond to their indexes in the damage list and labels.
|
||||||
private final List<Card> lstDefenders = new ArrayList<Card>();
|
private final List<Card> lstDefenders = new ArrayList<Card>();
|
||||||
@@ -244,15 +245,6 @@ public class VAssignDamage {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private final Command cmdOK = new Command() { @Override
|
|
||||||
public void execute() { finish(); } };
|
|
||||||
|
|
||||||
private final Command cmdReset = new Command() { @Override
|
|
||||||
public void execute() { resetAssignDamage(); } };
|
|
||||||
|
|
||||||
private final Command cmdAuto = new Command() { @Override
|
|
||||||
public void execute() { autoAssignDamage(); } };
|
|
||||||
|
|
||||||
/** Constructor.
|
/** Constructor.
|
||||||
*
|
*
|
||||||
* @param attacker0 {@link forge.Card}
|
* @param attacker0 {@link forge.Card}
|
||||||
@@ -334,9 +326,12 @@ public class VAssignDamage {
|
|||||||
pnlDefenders.add(lstDamageLabels.get(i), "w 145px!, h 30px!, gap 5px 5px 0 5px");
|
pnlDefenders.add(lstDamageLabels.get(i), "w 145px!, h 30px!, gap 5px 5px 0 5px");
|
||||||
}
|
}
|
||||||
|
|
||||||
lblOK.setCommand(cmdOK);
|
btnOK.addActionListener(new ActionListener() {
|
||||||
lblReset.setCommand(cmdReset);
|
@Override public void actionPerformed(ActionEvent arg0) { finish(); } });
|
||||||
lblAuto.setCommand(cmdAuto);
|
btnReset.addActionListener(new ActionListener() {
|
||||||
|
@Override public void actionPerformed(ActionEvent arg0) { resetAssignDamage(); } });
|
||||||
|
btnAuto.addActionListener(new ActionListener() {
|
||||||
|
@Override public void actionPerformed(ActionEvent arg0) { autoAssignDamage(); } });
|
||||||
|
|
||||||
// Final UI layout
|
// Final UI layout
|
||||||
pnlMain.setLayout(new MigLayout("insets 0, gap 0, wrap 2, ax center"));
|
pnlMain.setLayout(new MigLayout("insets 0, gap 0, wrap 2, ax center"));
|
||||||
@@ -346,12 +341,20 @@ public class VAssignDamage {
|
|||||||
|
|
||||||
JPanel pnlButtons = new JPanel(new MigLayout("insets 0, gap 0, ax center"));
|
JPanel pnlButtons = new JPanel(new MigLayout("insets 0, gap 0, ax center"));
|
||||||
pnlButtons.setOpaque(false);
|
pnlButtons.setOpaque(false);
|
||||||
pnlButtons.add(lblAuto, "w 110px!, h 30px!, gap 0 10px 0 0");
|
pnlButtons.add(btnAuto, "w 110px!, h 30px!, gap 0 10px 0 0");
|
||||||
pnlButtons.add(lblOK, "w 110px!, h 30px!, gap 0 10px 0 0");
|
pnlButtons.add(btnOK, "w 110px!, h 30px!, gap 0 10px 0 0");
|
||||||
pnlButtons.add(lblReset, "w 110px!, h 30px!");
|
pnlButtons.add(btnReset, "w 110px!, h 30px!");
|
||||||
|
|
||||||
pnlMain.add(pnlButtons, "ax center, w 350px!, gap 10px 10px 10px 10px, span 2");
|
pnlMain.add(pnlButtons, "ax center, w 350px!, gap 10px 10px 10px 10px, span 2");
|
||||||
overlay.add(pnlMain);
|
overlay.add(pnlMain);
|
||||||
|
|
||||||
|
pnlMain.getRootPane().setDefaultButton(btnOK);
|
||||||
|
SwingUtilities.invokeLater(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
btnAuto.requestFocusInWindow();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
initialAssignDamage();
|
initialAssignDamage();
|
||||||
SOverlayUtils.showOverlay();
|
SOverlayUtils.showOverlay();
|
||||||
|
|||||||
Reference in New Issue
Block a user