removed duplicate preferences validation from QuestPreferencesHandler & CSubmenuQuestPrefs

This commit is contained in:
Maxmtg
2013-03-15 21:21:34 +00:00
parent 10fdf5b82a
commit 9c3497c7f4
2 changed files with 75 additions and 139 deletions

View File

@@ -7,7 +7,6 @@ import forge.Singletons;
import forge.gui.framework.ICDoc; import forge.gui.framework.ICDoc;
import forge.gui.home.quest.VSubmenuQuestPrefs.PrefInput; import forge.gui.home.quest.VSubmenuQuestPrefs.PrefInput;
import forge.quest.data.QuestPreferences; import forge.quest.data.QuestPreferences;
import forge.quest.data.QuestPreferences.QPref;
/** /**
* Controls the quest preferences submenu in the home UI. * Controls the quest preferences submenu in the home UI.
@@ -43,80 +42,16 @@ public enum CSubmenuQuestPrefs implements ICDoc {
public static void validateAndSave(PrefInput i0) { public static void validateAndSave(PrefInput i0) {
if (i0.getText().equals(i0.getPreviousText())) { return; } if (i0.getText().equals(i0.getPreviousText())) { return; }
final QuestPreferences prefs = Singletons.getModel().getQuestPreferences(); final QuestPreferences prefs = Singletons.getModel().getQuestPreferences();
int temp1, temp2;
int val = Integer.parseInt(i0.getText()); int val = Integer.parseInt(i0.getText());
resetErrors(); resetErrors();
switch (i0.getQPref()) { String validationError = QuestPreferencesHandler.validatePreference(i0.getQPref(), val, prefs);
case STARTING_CREDITS_EASY: case STARTING_CREDITS_MEDIUM: if( null != validationError)
case STARTING_CREDITS_HARD: case STARTING_CREDITS_EXPERT: {
case REWARDS_MILLED: case REWARDS_MULLIGAN0: showError(i0, validationError);
case REWARDS_ALTERNATIVE: case REWARDS_TURN5:
if (val > 500) {
showError(i0, "Value too large (maximum 500).");
return; 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;
}
prefs.setPreference(i0.getQPref(), i0.getText()); prefs.setPreference(i0.getQPref(), i0.getText());
prefs.save(); prefs.save();

View File

@@ -323,7 +323,7 @@ public class QuestPreferencesHandler extends JPanel {
} }
} }
private int temp1, temp2;
/** /**
* Checks validity of values entered into prefInputs. * Checks validity of values entered into prefInputs.
* @param i0 &emsp; a PrefInput object * @param i0 &emsp; a PrefInput object
@@ -334,81 +334,82 @@ public class QuestPreferencesHandler extends JPanel {
int val = Integer.parseInt(i0.getText()); int val = Integer.parseInt(i0.getText());
resetErrors(); resetErrors();
switch (i0.getQPref()) { String validationError = validatePreference(i0.getQPref(), val, prefs);
case STARTING_CREDITS_EASY: case STARTING_CREDITS_MEDIUM: if( null != validationError)
case STARTING_CREDITS_HARD: case STARTING_CREDITS_EXPERT: {
case REWARDS_MILLED: case REWARDS_MULLIGAN0: showError(i0, validationError);
case REWARDS_ALTERNATIVE: case REWARDS_TURN5:
if (val > 500) {
showError(i0, "Value too large (maximum 500).");
return; 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;
}
prefs.setPreference(i0.getQPref(), i0.getText()); prefs.setPreference(i0.getQPref(), i0.getText());
prefs.save(); prefs.save();
i0.setPreviousText(i0.getText()); 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) { private void showError(PrefInput i0, String s0) {
String s = "Save failed: " + s0; String s = "Save failed: " + s0;
switch(i0.getErrType()) { switch(i0.getErrType()) {