From 2bedb5412834c1a2b357f05149ad4711818470c9 Mon Sep 17 00:00:00 2001 From: pfps Date: Wed, 25 Jan 2017 00:28:11 +0000 Subject: [PATCH] Change several confirms to use new utility function --- .../java/forge/match/input/InputConfirm.java | 35 +++++++++++++++---- .../java/forge/player/HumanCostDecision.java | 13 ++----- .../forge/player/PlayerControllerHuman.java | 26 +++----------- 3 files changed, 34 insertions(+), 40 deletions(-) diff --git a/forge-gui/src/main/java/forge/match/input/InputConfirm.java b/forge-gui/src/main/java/forge/match/input/InputConfirm.java index 4cf6e924a66..adb404cde49 100644 --- a/forge-gui/src/main/java/forge/match/input/InputConfirm.java +++ b/forge-gui/src/main/java/forge/match/input/InputConfirm.java @@ -17,6 +17,10 @@ */ package forge.match.input; +import java.util.List; + +import com.google.common.collect.ImmutableList; + import forge.GuiBase; import forge.game.card.Card; import forge.game.card.CardView; @@ -45,20 +49,37 @@ public class InputConfirm extends InputSyncronizedBase { private CardView card; // simple interface to hide ugliness deciding how to confirm - public static boolean confirm(final PlayerControllerHuman controller, final CardView card, String message) { + protected static ImmutableList defaultOptions = ImmutableList.of("Yes", "No"); + public static boolean confirm(final PlayerControllerHuman controller, final CardView card, final String message) { + return InputConfirm.confirm(controller, card, message, true, defaultOptions); + } + public static boolean confirm(final PlayerControllerHuman controller, final CardView card, final String message, final boolean defaultIsYes, final List options) { if (GuiBase.getInterface().isLibgdxPort()) { - return controller.getGui().confirm(card,message); + return controller.getGui().confirm(card, message, defaultIsYes, options); } else { - final InputConfirm inp = new InputConfirm(controller, message, card); + InputConfirm inp; + if ( options.size() == 2 ) { + inp = new InputConfirm(controller, message, options.get(0), options.get(1), defaultIsYes, card); + } else { + inp = new InputConfirm(controller, message, defaultOptions.get(0), defaultOptions.get(1), defaultIsYes, card); + } inp.showAndWait(); return inp.getResult(); } } - public static boolean confirm(final PlayerControllerHuman controller, final SpellAbility sa, String message) { + public static boolean confirm(final PlayerControllerHuman controller, final SpellAbility sa, final String message) { + return InputConfirm.confirm(controller, sa, message, true, defaultOptions); + } + public static boolean confirm(final PlayerControllerHuman controller, final SpellAbility sa, final String message, final boolean defaultIsYes, final List options) { if (GuiBase.getInterface().isLibgdxPort()) { - return controller.getGui().confirm((sa==null)?null:CardView.get(sa.getHostCard()),message); + return controller.getGui().confirm((sa==null)?null:CardView.get(sa.getHostCard()), message, defaultIsYes, options); } else { - final InputConfirm inp = new InputConfirm(controller, message, sa); + InputConfirm inp; + if ( options.size() == 2 ) { + inp = new InputConfirm(controller, message, options.get(0), options.get(1), defaultIsYes, sa); + } else { + inp = new InputConfirm(controller, message, defaultOptions.get(0), defaultOptions.get(1), defaultIsYes, sa); + } inp.showAndWait(); return inp.getResult(); } @@ -126,7 +147,7 @@ public class InputConfirm extends InputSyncronizedBase { protected final void showMessage() { getController().getGui().updateButtons(getOwner(), yesButtonText, noButtonText, true, true, defaultYes); if ( FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DETAILED_SPELLDESC_IN_PROMPT) && - (card!=null) ) { + (card!=null) ) { final StringBuilder sb = new StringBuilder(); sb.append(card.toString()); if ( (sa != null) && (sa.toString().length()>1) ) { // some spell abilities have no useful string value diff --git a/forge-gui/src/main/java/forge/player/HumanCostDecision.java b/forge-gui/src/main/java/forge/player/HumanCostDecision.java index ec9cdfba36c..3b180f455aa 100644 --- a/forge-gui/src/main/java/forge/player/HumanCostDecision.java +++ b/forge-gui/src/main/java/forge/player/HumanCostDecision.java @@ -948,17 +948,8 @@ public class HumanCostDecision extends CostDecisionMakerBase { if (cost.payCostFromSource()) { final int maxCounters = source.getCounters(cost.counter); if (amount.equals("All")) { - if (GuiBase.getInterface().isLibgdxPort()) { - final CardView view = CardView.get(ability.getHostCard()); - if (!controller.getGui().confirm(view, "Remove all counters?")) { - return null; - } - } else { - final InputConfirm inp = new InputConfirm(controller, "Remove all counters?", ability); - inp.showAndWait(); - if (!inp.getResult()) { - return null; - } + if (!InputConfirm.confirm(controller, ability, "Remove all counters?")) { + return null; } cntRemoved = maxCounters; } diff --git a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java index 0dafc5c8f7a..bf8fa48a18a 100644 --- a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java +++ b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java @@ -649,13 +649,7 @@ public class PlayerControllerHuman getGui().setCard(c.getView()); boolean result = false; - if (GuiBase.getInterface().isLibgdxPort()) { - result = getGui().confirm(view, String.format("Put %s on the top or bottom of your library?", view), ImmutableList.of("Top", "Bottom")); - } else { - final InputConfirm inp = new InputConfirm(this, String.format("Put %s on the top or bottom of your library?", view), "Top", "Bottom", true, c.getView()); - inp.showAndWait(); - result = inp.getResult(); - } + result = InputConfirm.confirm(this, view, String.format("Put %s on the top or bottom of your library?", view), true, ImmutableList.of("Top", "Bottom")); endTempShowCards(); return result; @@ -1024,13 +1018,8 @@ public class PlayerControllerHuman case LeftOrRight: labels = ImmutableList.of("Left", "Right"); break; default: labels = ImmutableList.copyOf(kindOfChoice.toString().split("Or")); } - if (GuiBase.getInterface().isLibgdxPort()) { - return getGui().confirm(CardView.get(sa.getHostCard()), question, defaultVal == null || defaultVal.booleanValue(), labels); - } else { - final InputConfirm inp = new InputConfirm(this, question, labels.get(0), labels.get(1), defaultVal == null || defaultVal.booleanValue(), sa); - inp.showAndWait(); - return inp.getResult(); - } + + return InputConfirm.confirm(this, sa, question, defaultVal == null || defaultVal.booleanValue(), labels); } @Override @@ -1163,14 +1152,7 @@ public class PlayerControllerHuman } boolean confirmed = false; - if (GuiBase.getInterface().isLibgdxPort()) { - confirmed = getGui().confirm(CardView.get(c), message, colorNames) ; - } else { - final InputConfirm inp = new InputConfirm(this, message, colorNames.get(0), colorNames.get(1), CardView.get(c)); - inp.showAndWait(); - confirmed = inp.getResult(); - } - + confirmed = InputConfirm.confirm(this, CardView.get(c), message, true, colorNames) ; final int idxChosen = confirmed ? 0 : 1; return MagicColor.fromName(colorNames.get(idxChosen)); }