From 9c3497c7f4939ede035afa9c7379d3cf5afbae45 Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Fri, 15 Mar 2013 21:21:34 +0000 Subject: [PATCH] removed duplicate preferences validation from QuestPreferencesHandler & CSubmenuQuestPrefs --- .../gui/home/quest/CSubmenuQuestPrefs.java | 75 +--------- .../home/quest/QuestPreferencesHandler.java | 139 +++++++++--------- 2 files changed, 75 insertions(+), 139 deletions(-) diff --git a/src/main/java/forge/gui/home/quest/CSubmenuQuestPrefs.java b/src/main/java/forge/gui/home/quest/CSubmenuQuestPrefs.java index 3cb05e041e7..10a1bb6de7e 100644 --- a/src/main/java/forge/gui/home/quest/CSubmenuQuestPrefs.java +++ b/src/main/java/forge/gui/home/quest/CSubmenuQuestPrefs.java @@ -7,7 +7,6 @@ import forge.Singletons; import forge.gui.framework.ICDoc; import forge.gui.home.quest.VSubmenuQuestPrefs.PrefInput; import forge.quest.data.QuestPreferences; -import forge.quest.data.QuestPreferences.QPref; /** * Controls the quest preferences submenu in the home UI. @@ -43,79 +42,15 @@ public enum CSubmenuQuestPrefs implements ICDoc { public static void validateAndSave(PrefInput i0) { if (i0.getText().equals(i0.getPreviousText())) { return; } final QuestPreferences prefs = Singletons.getModel().getQuestPreferences(); - int temp1, temp2; int val = Integer.parseInt(i0.getText()); resetErrors(); - switch (i0.getQPref()) { - case STARTING_CREDITS_EASY: case STARTING_CREDITS_MEDIUM: - case STARTING_CREDITS_HARD: case STARTING_CREDITS_EXPERT: - case REWARDS_MILLED: case REWARDS_MULLIGAN0: - case REWARDS_ALTERNATIVE: case REWARDS_TURN5: - if (val > 500) { - showError(i0, "Value too large (maximum 500)."); - return; - } - break; - case BOOSTER_COMMONS: - temp1 = prefs.getPreferenceInt(QPref.BOOSTER_UNCOMMONS); - temp2 = prefs.getPreferenceInt(QPref.BOOSTER_RARES); - - if (temp1 + temp2 + val > 15) { - showError(i0, "Booster packs must have maximum 15 cards."); - return; - } - break; - case BOOSTER_UNCOMMONS: - temp1 = prefs.getPreferenceInt(QPref.BOOSTER_COMMONS); - temp2 = prefs.getPreferenceInt(QPref.BOOSTER_RARES); - - if (temp1 + temp2 + val > 15) { - showError(i0, "Booster packs must have maximum 15 cards."); - return; - } - break; - case BOOSTER_RARES: - temp1 = prefs.getPreferenceInt(QPref.BOOSTER_COMMONS); - temp2 = prefs.getPreferenceInt(QPref.BOOSTER_UNCOMMONS); - - if (temp1 + temp2 + val > 15) { - showError(i0, "Booster packs must have maximum 15 cards."); - return; - } - break; - case REWARDS_TURN1: - if (val > 2000) { - showError(i0, "Value too large (maximum 2000)."); - return; - } - break; - case SHOP_STARTING_PACKS: - case SHOP_SINGLES_COMMON: case SHOP_SINGLES_UNCOMMON: case SHOP_SINGLES_RARE: - if (val < 0) { - showError(i0, "Value too small (minimum 0)."); - return; - } else if (val > 15) { - showError(i0, "Value too large (maximum 15)."); - return; - } - break; - case SHOP_WINS_FOR_ADDITIONAL_PACK: case SHOP_MAX_PACKS: - if (val < 1) { - showError(i0, "Value too small (minimum 1)."); - return; - } else if (val > 25) { - showError(i0, "Value too large (maximum 25)."); - return; - } - break; - default: - if (val > 100) { - showError(i0, "Value too large (maximum 100)."); - return; - } - break; + String validationError = QuestPreferencesHandler.validatePreference(i0.getQPref(), val, prefs); + if( null != validationError) + { + showError(i0, validationError); + return; } prefs.setPreference(i0.getQPref(), i0.getText()); diff --git a/src/main/java/forge/gui/home/quest/QuestPreferencesHandler.java b/src/main/java/forge/gui/home/quest/QuestPreferencesHandler.java index 91e4c428457..84c76123449 100644 --- a/src/main/java/forge/gui/home/quest/QuestPreferencesHandler.java +++ b/src/main/java/forge/gui/home/quest/QuestPreferencesHandler.java @@ -323,7 +323,7 @@ public class QuestPreferencesHandler extends JPanel { } } - private int temp1, temp2; + /** * Checks validity of values entered into prefInputs. * @param i0   a PrefInput object @@ -334,74 +334,11 @@ public class QuestPreferencesHandler extends JPanel { int val = Integer.parseInt(i0.getText()); resetErrors(); - switch (i0.getQPref()) { - case STARTING_CREDITS_EASY: case STARTING_CREDITS_MEDIUM: - case STARTING_CREDITS_HARD: case STARTING_CREDITS_EXPERT: - case REWARDS_MILLED: case REWARDS_MULLIGAN0: - case REWARDS_ALTERNATIVE: case REWARDS_TURN5: - if (val > 500) { - showError(i0, "Value too large (maximum 500)."); - return; - } - break; - case BOOSTER_COMMONS: - temp1 = prefs.getPreferenceInt(QPref.BOOSTER_UNCOMMONS); - temp2 = prefs.getPreferenceInt(QPref.BOOSTER_RARES); - - if (temp1 + temp2 + val > 15) { - showError(i0, "Booster packs must have maximum 15 cards."); - return; - } - break; - case BOOSTER_UNCOMMONS: - temp1 = prefs.getPreferenceInt(QPref.BOOSTER_COMMONS); - temp2 = prefs.getPreferenceInt(QPref.BOOSTER_RARES); - - if (temp1 + temp2 + val > 15) { - showError(i0, "Booster packs must have maximum 15 cards."); - return; - } - break; - case BOOSTER_RARES: - temp1 = prefs.getPreferenceInt(QPref.BOOSTER_COMMONS); - temp2 = prefs.getPreferenceInt(QPref.BOOSTER_UNCOMMONS); - - if (temp1 + temp2 + val > 15) { - showError(i0, "Booster packs must have maximum 15 cards."); - return; - } - break; - case REWARDS_TURN1: - if (val > 2000) { - showError(i0, "Value too large (maximum 2000)."); - return; - } - break; - case SHOP_STARTING_PACKS: - case SHOP_SINGLES_COMMON: case SHOP_SINGLES_UNCOMMON: case SHOP_SINGLES_RARE: - if (val < 0) { - showError(i0, "Value too small (minimum 0)."); - return; - } else if (val > 15) { - showError(i0, "Value too large (maximum 15)."); - return; - } - break; - case SHOP_WINS_FOR_ADDITIONAL_PACK: case SHOP_MAX_PACKS: - if (val < 1) { - showError(i0, "Value too small (minimum 1)."); - return; - } else if (val > 25) { - showError(i0, "Value too large (maximum 25)."); - return; - } - break; - default: - if (val > 100) { - showError(i0, "Value too large (maximum 100)."); - return; - } - break; + String validationError = validatePreference(i0.getQPref(), val, prefs); + if( null != validationError) + { + showError(i0, validationError); + return; } prefs.setPreference(i0.getQPref(), i0.getText()); @@ -409,6 +346,70 @@ public class QuestPreferencesHandler extends JPanel { i0.setPreviousText(i0.getText()); } + public static String validatePreference(QPref qpref, int val, QuestPreferences current) { + int temp1, temp2; + switch (qpref) { + case STARTING_CREDITS_EASY: case STARTING_CREDITS_MEDIUM: + case STARTING_CREDITS_HARD: case STARTING_CREDITS_EXPERT: + case REWARDS_MILLED: case REWARDS_MULLIGAN0: + case REWARDS_ALTERNATIVE: case REWARDS_TURN5: + if (val > 500) { + return "Value too large (maximum 500)."; + } + break; + case BOOSTER_COMMONS: + temp1 = current.getPreferenceInt(QPref.BOOSTER_UNCOMMONS); + temp2 = current.getPreferenceInt(QPref.BOOSTER_RARES); + + if (temp1 + temp2 + val > 15) { + return "Booster packs must have maximum 15 cards."; + } + break; + case BOOSTER_UNCOMMONS: + temp1 = current.getPreferenceInt(QPref.BOOSTER_COMMONS); + temp2 = current.getPreferenceInt(QPref.BOOSTER_RARES); + + if (temp1 + temp2 + val > 15) { + return "Booster packs must have maximum 15 cards."; + } + break; + case BOOSTER_RARES: + temp1 = current.getPreferenceInt(QPref.BOOSTER_COMMONS); + temp2 = current.getPreferenceInt(QPref.BOOSTER_UNCOMMONS); + + if (temp1 + temp2 + val > 15) { + return "Booster packs must have maximum 15 cards."; + } + break; + case REWARDS_TURN1: + if (val > 2000) { + return "Value too large (maximum 2000)."; + } + break; + case SHOP_STARTING_PACKS: + case SHOP_SINGLES_COMMON: case SHOP_SINGLES_UNCOMMON: case SHOP_SINGLES_RARE: + if (val < 0) { + return "Value too small (minimum 0)."; + } else if (val > 15) { + return "Value too large (maximum 15)."; + } + break; + case SHOP_WINS_FOR_ADDITIONAL_PACK: case SHOP_MAX_PACKS: + if (val < 1) { + return "Value too small (minimum 1)."; + } else if (val > 25) { + return "Value too large (maximum 25)."; + } + break; + default: + if (val > 100) { + return "Value too large (maximum 100)."; + } + break; + } + return null; + } + private void showError(PrefInput i0, String s0) { String s = "Save failed: " + s0; switch(i0.getErrType()) {