diff --git a/.gitattributes b/.gitattributes
index 7bb1ad98006..54f67766063 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -10801,7 +10801,6 @@ res/quest/price.txt svneol=native#text/plain
res/quest/quest-opponent-icons.txt -text
res/quest/quest-pet-shop-icons.txt -text
res/quest/quest-pet-token-images.txt -text
-res/quest/quest.preferences -text
res/quest/quest.properties svneol=native#text/plain
res/quest/themes/-1[!!-~]-1[!!-~]Counters[!!-~]BG.thm -text
res/quest/themes/Anti[!!-~]Black[!!-~]WB.thm -text
diff --git a/res/quest/quest.preferences b/res/quest/quest.preferences
deleted file mode 100644
index 0e86036c203..00000000000
--- a/res/quest/quest.preferences
+++ /dev/null
@@ -1,61 +0,0 @@
-BOOSTER_COMMONS=11
-BOOSTER_UNCOMMONS=3
-BOOSTER_RARES=1
-REWARDS_BASE=30
-REWARDS_UNDEFEATED=25
-REWARDS_WINS_MULTIPLIER=0.3
-REWARDS_POISON=50
-REWARDS_MILLED=40
-REWARDS_MULLIGAN0=500
-REWARDS_ALTERNATIVE=100
-REWARDS_TURN15=5
-REWARDS_TURN10=50
-REWARDS_TURN5=250
-REWARDS_TURN1=1500
-STARTING_BASIC_LANDS=20
-STARTING_SNOW_LANDS=5
-
-STARTING_COMMONS_EASY=82
-STARTING_COMMONS_MEDIUM=80
-STARTING_COMMONS_HARD=78
-STARTING_COMMONS_EXPERT=76
-
-STARTING_UNCOMMONS_EASY=40
-STARTING_UNCOMMONS_MEDIUM=36
-STARTING_UNCOMMONS_HARD=32
-STARTING_UNCOMMONS_EXPERT=28
-
-STARTING_RARES_EASY=20
-STARTING_RARES_MEDIUM=18
-STARTING_RARES_HARD=16
-STARTING_RARES_EXPERT=15
-
-STARTING_CREDITS_EASY=250
-STARTING_CREDITS_MEDIUM=200
-STARTING_CREDITS_HARD=150
-STARTING_CREDITS_EXPERT=100
-
-WINS_BOOSTER_EASY=1
-WINS_BOOSTER_MEDIUM=1
-WINS_BOOSTER_HARD=2
-WINS_BOOSTER_EXPERT=2
-
-WINS_RANKUP_EASY=3
-WINS_RANKUP_MEDIUM=4
-WINS_RANKUP_HARD=5
-WINS_RANKUP_EXPERT=6
-
-WINS_MEDIUMAI_EASY=10
-WINS_MEDIUMAI_MEDIUM=9
-WINS_MEDIUMAI_HARD=8
-WINS_MEDIUMAI_EXPERT=7
-
-WINS_HARDAI_EASY=20
-WINS_HARDAI_MEDIUM=18
-WINS_HARDAI_HARD=16
-WINS_HARDAI_EXPERT=14
-
-WINS_EXPERTAI_EASY=40
-WINS_EXPERTAI_MEDIUM=36
-WINS_EXPERTAI_HARD=32
-WINS_EXPERTAI_EXPERT=28
diff --git a/src/main/java/arcane/ui/CardPanel.java b/src/main/java/arcane/ui/CardPanel.java
index 8ea7373b236..3496131729c 100644
--- a/src/main/java/arcane/ui/CardPanel.java
+++ b/src/main/java/arcane/ui/CardPanel.java
@@ -45,6 +45,7 @@ import forge.CardContainer;
import forge.Counters;
import forge.ImageCache;
import forge.Singletons;
+import forge.properties.ForgePreferences.FPref;
import forge.view.toolbox.CardFaceSymbols;
/**
@@ -585,7 +586,7 @@ public class CardPanel extends JPanel implements CardContainer {
* a {@link forge.Card} object.
*/
public final void setText(final Card card) {
- if ((card == null) || !Singletons.getModel().getPreferences().isCardOverlay()) {
+ if ((card == null) || !Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_CARD_OVERLAY)) {
return;
}
@@ -635,7 +636,7 @@ public class CardPanel extends JPanel implements CardContainer {
final Insets i = this.getInsets();
final Image image = card == null ? null : ImageCache.getImage(card, this.getWidth() - i.left - i.right,
this.getHeight() - i.top - i.bottom);
- if ((this.getGameCard() != null) && Singletons.getModel().getPreferences().isCardOverlay()) {
+ if ((this.getGameCard() != null) && Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_CARD_OVERLAY)) {
this.setText(this.getGameCard());
}
diff --git a/src/main/java/forge/GameAction.java b/src/main/java/forge/GameAction.java
index 12565899284..407b07c3694 100644
--- a/src/main/java/forge/GameAction.java
+++ b/src/main/java/forge/GameAction.java
@@ -56,6 +56,7 @@ import forge.gui.input.InputPayManaCost;
import forge.gui.input.InputPayManaCostAbility;
import forge.gui.input.InputPayManaCostUtil;
import forge.item.CardPrinted;
+import forge.properties.ForgePreferences.FPref;
import forge.properties.ForgeProps;
import forge.properties.NewConstants.Lang.GameAction.GameActionText;
import forge.util.MyRandom;
@@ -873,7 +874,6 @@ public class GameAction {
}
if (this.canShowWinLose && this.checkEndGameState()) {
- AllZone.getDisplay().savePrefs();
new ViewWinLose();
this.canShowWinLose = false;
return;
@@ -1437,7 +1437,7 @@ public class GameAction {
}
if (card.hasKeyword("Remove CARDNAME from your deck before playing if you're not playing for ante.")
- && !Singletons.getModel().getPreferences().isPlayForAnte()) {
+ && !Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_ANTE)) {
hAnteRemoved.add(card.getName());
} else {
AllZone.getHumanPlayer().getZone(Zone.Library).add(card);
@@ -1479,7 +1479,7 @@ public class GameAction {
}
if (card.hasKeyword("Remove CARDNAME from your deck before playing if you're not playing for ante.")
- && !Singletons.getModel().getPreferences().isPlayForAnte()) {
+ && !Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_ANTE)) {
cAnteRemoved.add(card.getName());
} else {
AllZone.getComputerPlayer().getZone(Zone.Library).add(card);
@@ -1583,7 +1583,7 @@ public class GameAction {
this.computerStartsGame();
}
- if (Singletons.getModel().getPreferences().isPlayForAnte()) {
+ if (Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_ANTE)) {
final String nl = System.getProperty("line.separator");
final StringBuilder msg = new StringBuilder();
for (final Player p : AllZone.getPlayersInGame()) {
diff --git a/src/main/java/forge/ImageCache.java b/src/main/java/forge/ImageCache.java
index 1a3d97caca4..731fef5219a 100644
--- a/src/main/java/forge/ImageCache.java
+++ b/src/main/java/forge/ImageCache.java
@@ -36,6 +36,7 @@ import com.google.common.util.concurrent.UncheckedExecutionException;
import com.mortennobel.imagescaling.ResampleOp;
import forge.item.InventoryItem;
+import forge.properties.ForgePreferences.FPref;
import forge.properties.ForgeProps;
import forge.properties.NewConstants;
@@ -176,7 +177,7 @@ public class ImageCache {
double scale = Math.min((double) width / original.getWidth(), (double) height / original.getHeight());
// here would be the place to limit the scaling, scaling option in menu
// ?
- if ((scale > 1) && !Singletons.getModel().getPreferences().isScaleLargerThanOriginal()) {
+ if ((scale > 1) && !Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_SCALE_LARGER)) {
scale = 1;
}
@@ -203,7 +204,7 @@ public class ImageCache {
double scale = Math.min((double) width / original.getWidth(), (double) height / original.getHeight());
// here would be the place to limit the scaling option in menu ?
- if ((scale > 1) && !Singletons.getModel().getPreferences().isScaleLargerThanOriginal()) {
+ if ((scale > 1) && !Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_SCALE_LARGER)) {
scale = 1;
}
diff --git a/src/main/java/forge/control/KeyboardShortcuts.java b/src/main/java/forge/control/KeyboardShortcuts.java
index 0cdd87459be..f919faf9bbb 100644
--- a/src/main/java/forge/control/KeyboardShortcuts.java
+++ b/src/main/java/forge/control/KeyboardShortcuts.java
@@ -16,6 +16,7 @@ import javax.swing.KeyStroke;
import org.apache.commons.lang3.StringUtils;
import forge.Singletons;
+import forge.properties.ForgePreferences.FPref;
import forge.view.GuiTopLevel;
import forge.view.home.ViewSettings.KeyboardShortcutField;
@@ -100,12 +101,12 @@ public class KeyboardShortcuts {
};
//========== Instantiate shortcut objects and add to list.
- list.add(new Shortcut("shortcut.showstack", "Match: show stack panel", actShowStack, am, im));
- list.add(new Shortcut("shortcut.showcombat", "Match: show combat panel", actShowCombat, am, im));
- list.add(new Shortcut("shortcut.showconsole", "Match: show console panel", actShowConsole, am, im));
- list.add(new Shortcut("shortcut.showplayers", "Match: show players panel", actShowPlayers, am, im));
- list.add(new Shortcut("shortcut.showdev", "Match: show dev panel", actShowDev, am, im));
- list.add(new Shortcut("shortcut.concede", "Match: concede game", actConcede, am, im));
+ list.add(new Shortcut(FPref.SHORTCUT_SHOWSTACK, "Match: show stack panel", actShowStack, am, im));
+ list.add(new Shortcut(FPref.SHORTCUT_SHOWCOMBAT, "Match: show combat panel", actShowCombat, am, im));
+ list.add(new Shortcut(FPref.SHORTCUT_SHOWCONSOLE, "Match: show console panel", actShowConsole, am, im));
+ list.add(new Shortcut(FPref.SHORTCUT_SHOWPLAYERS, "Match: show players panel", actShowPlayers, am, im));
+ list.add(new Shortcut(FPref.SHORTCUT_SHOWDEV, "Match: show dev panel", actShowDev, am, im));
+ list.add(new Shortcut(FPref.SHORTCUT_CONCEDE, "Match: concede game", actConcede, am, im));
return list;
} // End initMatchShortcuts()
@@ -158,7 +159,7 @@ public class KeyboardShortcuts {
*/
public static class Shortcut {
/** */
- private String prefkey;
+ private FPref prefkey;
/** */
private String description;
/** */
@@ -183,7 +184,7 @@ public class KeyboardShortcuts {
* @param am0 ActionMap, of container targeted by shortcut
* @param im0 InputMap, of container targeted by shortcut
*/
- public Shortcut(final String prefkey0, final String description0,
+ public Shortcut(final FPref prefkey0, final String description0,
final Action handler0, final ActionMap am0, final InputMap im0) {
prefkey = prefkey0;
@@ -203,14 +204,14 @@ public class KeyboardShortcuts {
* String ident key in forge.preferences.
* @return {@link java.lang.String}
*/
- public String getPrefKey() {
+ public FPref getPrefKey() {
return prefkey;
}
/** */
public void attach() {
detach();
- str = Singletons.getModel().getPreferences().getKeyboardShortcut(prefkey);
+ str = Singletons.getModel().getPreferences().getPref(prefkey);
key = KeyStroke.getKeyStroke(KeyboardShortcuts.codes2Chars(str));
inputMap.put(key, str);
actionMap.put(str, handler);
diff --git a/src/main/java/forge/control/home/ControlSettings.java b/src/main/java/forge/control/home/ControlSettings.java
index 3353c80eed5..7810a71177c 100644
--- a/src/main/java/forge/control/home/ControlSettings.java
+++ b/src/main/java/forge/control/home/ControlSettings.java
@@ -12,6 +12,7 @@ import forge.Constant;
import forge.Singletons;
import forge.properties.ForgePreferences;
import forge.properties.ForgePreferences.CardSizeType;
+import forge.properties.ForgePreferences.FPref;
import forge.view.GuiTopLevel;
import forge.view.home.ViewSettings;
import forge.view.toolbox.FSkin;
@@ -56,7 +57,7 @@ public class ControlSettings {
@Override
public void actionPerformed(final ActionEvent arg0) {
final boolean toggle = ControlSettings.this.view.getCbAnte().isSelected();
- prefs.setPlayForAnte(toggle);
+ prefs.setPref(FPref.UI_ANTE, String.valueOf(toggle));
try { prefs.save(); } catch (Exception e) { e.printStackTrace(); }
}
});
@@ -65,7 +66,7 @@ public class ControlSettings {
@Override
public void actionPerformed(final ActionEvent arg0) {
final boolean toggle = ControlSettings.this.view.getCbScaleLarger().isSelected();
- prefs.setScaleLargerThanOriginal(toggle);
+ prefs.setPref(FPref.UI_SCALE_LARGER, String.valueOf(toggle));
try { prefs.save(); } catch (Exception e) { e.printStackTrace(); }
}
});
@@ -74,7 +75,7 @@ public class ControlSettings {
@Override
public void actionPerformed(final ActionEvent arg0) {
final boolean toggle = ControlSettings.this.view.getCbDevMode().isSelected();
- prefs.setDeveloperMode(toggle);
+ prefs.setPref(FPref.DEV_MODE_ENABLED, String.valueOf(toggle));
Constant.Runtime.DEV_MODE[0] = toggle;
try { prefs.save(); } catch (Exception e) { e.printStackTrace(); }
}
@@ -84,7 +85,7 @@ public class ControlSettings {
@Override
public void actionPerformed(final ActionEvent arg0) {
final boolean toggle = ControlSettings.this.view.getCbRemoveSmall().isSelected();
- prefs.setDeckGenRmvSmall(toggle);
+ prefs.setPref(FPref.DECKGEN_NOSMALL, String.valueOf(toggle));
try { prefs.save(); } catch (Exception e) { e.printStackTrace(); }
}
});
@@ -93,7 +94,7 @@ public class ControlSettings {
@Override
public void actionPerformed(final ActionEvent arg0) {
final boolean toggle = ControlSettings.this.view.getCbRemoveArtifacts().isSelected();
- prefs.setDeckGenRmvArtifacts(toggle);
+ prefs.setPref(FPref.DECKGEN_ARTIFACTS, String.valueOf(toggle));
try { prefs.save(); } catch (Exception e) { e.printStackTrace(); }
}
});
@@ -102,7 +103,7 @@ public class ControlSettings {
@Override
public void actionPerformed(final ActionEvent arg0) {
final boolean toggle = ControlSettings.this.view.getCbSingletons().isSelected();
- prefs.setDeckGenSingletons(toggle);
+ prefs.setPref(FPref.DECKGEN_SINGLETONS, String.valueOf(toggle));
try { prefs.save(); } catch (Exception e) { e.printStackTrace(); }
}
});
@@ -111,7 +112,7 @@ public class ControlSettings {
@Override
public void actionPerformed(final ActionEvent arg0) {
final boolean toggle = ControlSettings.this.view.getCbUploadDraft().isSelected();
- prefs.setUploadDraftAI(toggle);
+ prefs.setPref(FPref.UI_UPLOAD_DRAFT , String.valueOf(toggle));
Constant.Runtime.UPLOAD_DRAFT[0] = toggle;
try { prefs.save(); } catch (Exception e) { e.printStackTrace(); }
}
@@ -121,7 +122,7 @@ public class ControlSettings {
@Override
public void actionPerformed(final ActionEvent arg0) {
final boolean toggle = ControlSettings.this.view.getCbStackLand().isSelected();
- prefs.setStackAiLand(toggle);
+ prefs.setPref(FPref.UI_SMOOTH_LAND, String.valueOf(toggle));
Constant.Runtime.SMOOTH[0] = toggle;
try { prefs.save(); } catch (Exception e) { e.printStackTrace(); }
}
@@ -131,7 +132,7 @@ public class ControlSettings {
@Override
public void actionPerformed(final ActionEvent arg0) {
final boolean toggle = ControlSettings.this.view.getCbRandomFoil().isSelected();
- prefs.setRandCFoil(toggle);
+ prefs.setPref(FPref.UI_RANDOM_FOIL, String.valueOf(toggle));
Constant.Runtime.RANDOM_FOIL[0] = toggle;
try { prefs.save(); } catch (Exception e) { e.printStackTrace(); }
}
@@ -141,7 +142,7 @@ public class ControlSettings {
@Override
public void actionPerformed(final ActionEvent arg0) {
final boolean toggle = ControlSettings.this.view.getCbTextMana().isSelected();
- prefs.setCardOverlay(toggle);
+ prefs.setPref(FPref.UI_CARD_OVERLAY, String.valueOf(toggle));
try { prefs.save(); } catch (Exception e) { e.printStackTrace(); }
}
});
@@ -153,7 +154,7 @@ public class ControlSettings {
skin.loadFontsAndImages();
- prefs.setSkin(name);
+ prefs.setPref(FPref.UI_SKIN, name);
Singletons.getView().setSkin(skin);
((GuiTopLevel) AllZone.getDisplay()).getController().changeState(0);
@@ -167,7 +168,7 @@ public class ControlSettings {
* @throws Exception */
public void updateCardSize(JRadioButton rad0) throws Exception {
CardSizeType cst = CardSizeType.valueOf(rad0.getText().toLowerCase());
- Singletons.getModel().getPreferences().setCardSize(cst);
+ Singletons.getModel().getPreferences().setPref(FPref.UI_CARD_SIZE, cst.toString());
prefs.save();
}
}
diff --git a/src/main/java/forge/control/match/ControlTabber.java b/src/main/java/forge/control/match/ControlTabber.java
index 771f95e1edd..c76982ef423 100644
--- a/src/main/java/forge/control/match/ControlTabber.java
+++ b/src/main/java/forge/control/match/ControlTabber.java
@@ -26,6 +26,7 @@ import forge.AllZone;
import forge.GuiDisplayUtil;
import forge.MyObservable;
import forge.Singletons;
+import forge.properties.ForgePreferences.FPref;
import forge.view.match.ViewTabber;
/**
@@ -61,13 +62,13 @@ public class ControlTabber extends MyObservable {
public ControlTabber(final ViewTabber v) {
this.view = v;
- if (Singletons.getModel().getPreferences().isMillingLossCondition()) {
+ if (Singletons.getModel().getPreferences().getPrefBoolean(FPref.DEV_MILLING_LOSS)) {
this.view.getLblMilling().setEnabled(true);
} else {
this.view.getLblMilling().setEnabled(false);
}
- if (Singletons.getModel().getPreferences().isUnlimitedLand()) {
+ if (Singletons.getModel().getPreferences().getPrefBoolean(FPref.DEV_UNLIMITED_LAND)) {
this.view.getLblUnlimitedLands().setEnabled(true);
} else {
this.view.getLblUnlimitedLands().setEnabled(false);
diff --git a/src/main/java/forge/control/match/ControlWinLose.java b/src/main/java/forge/control/match/ControlWinLose.java
index 5923b05747c..ce2e420c3bf 100644
--- a/src/main/java/forge/control/match/ControlWinLose.java
+++ b/src/main/java/forge/control/match/ControlWinLose.java
@@ -16,6 +16,7 @@ import forge.game.GameType;
import forge.gui.GuiUtils;
import forge.item.CardDb;
import forge.item.CardPrinted;
+import forge.properties.ForgePreferences.FPref;
import forge.view.GuiTopLevel;
import forge.view.match.ViewWinLose;
@@ -84,7 +85,7 @@ public class ControlWinLose {
* with other game modes.
*/
public void startNextRound() {
- boolean isAnte = Singletons.getModel().getPreferences().isPlayForAnte();
+ boolean isAnte = Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_ANTE);
GameType gameType = Constant.Runtime.getGameType();
//This is called from QuestWinLoseHandler also. If we're in a quest, this is already handled elsewhere
diff --git a/src/main/java/forge/deck/generate/Generate2ColorDeck.java b/src/main/java/forge/deck/generate/Generate2ColorDeck.java
index 09e50b74d43..1da09ab9fae 100644
--- a/src/main/java/forge/deck/generate/Generate2ColorDeck.java
+++ b/src/main/java/forge/deck/generate/Generate2ColorDeck.java
@@ -31,6 +31,7 @@ import forge.Constant;
import forge.PlayerType;
import forge.Singletons;
import forge.error.ErrorViewer;
+import forge.properties.ForgePreferences.FPref;
import forge.properties.ForgeProps;
import forge.util.MyRandom;
@@ -81,7 +82,7 @@ public class Generate2ColorDeck {
this.notColors.add("red");
this.notColors.add("green");
- if (Singletons.getModel().getPreferences().isDeckGenSingletons()) {
+ if (Singletons.getModel().getPreferences().getPrefBoolean(FPref.DECKGEN_SINGLETONS)) {
this.maxDuplicates = 1;
}
@@ -145,7 +146,7 @@ public class Generate2ColorDeck {
// reduce to cards that match the colors
CardList cl1 = allCards.getColor(this.color1);
- if (!Singletons.getModel().getPreferences().isDeckGenRmvArtifacts()) {
+ if (!Singletons.getModel().getPreferences().getPrefBoolean(FPref.DECKGEN_ARTIFACTS)) {
cl1.addAll(allCards.getColor(Constant.Color.COLORLESS));
}
CardList cl2 = allCards.getColor(this.color2);
diff --git a/src/main/java/forge/deck/generate/Generate3ColorDeck.java b/src/main/java/forge/deck/generate/Generate3ColorDeck.java
index 3044e370258..4e9b9e79501 100644
--- a/src/main/java/forge/deck/generate/Generate3ColorDeck.java
+++ b/src/main/java/forge/deck/generate/Generate3ColorDeck.java
@@ -31,6 +31,7 @@ import forge.Constant;
import forge.PlayerType;
import forge.Singletons;
import forge.error.ErrorViewer;
+import forge.properties.ForgePreferences.FPref;
import forge.properties.ForgeProps;
import forge.util.MyRandom;
@@ -84,7 +85,7 @@ public class Generate3ColorDeck {
this.notColors.add("red");
this.notColors.add("green");
- if (Singletons.getModel().getPreferences().isDeckGenSingletons()) {
+ if (Singletons.getModel().getPreferences().getPrefBoolean(FPref.DECKGEN_SINGLETONS)) {
this.maxDuplicates = 1;
}
@@ -157,7 +158,7 @@ public class Generate3ColorDeck {
// reduce to cards that match the colors
CardList cl1 = allCards.getColor(this.color1);
- if (!Singletons.getModel().getPreferences().isDeckGenRmvArtifacts()) {
+ if (!Singletons.getModel().getPreferences().getPrefBoolean(FPref.DECKGEN_ARTIFACTS)) {
cl1.addAll(allCards.getColor(Constant.Color.COLORLESS));
}
CardList cl2 = allCards.getColor(this.color2);
diff --git a/src/main/java/forge/deck/generate/Generate5ColorDeck.java b/src/main/java/forge/deck/generate/Generate5ColorDeck.java
index fcc2ccadfee..cff49d0d871 100644
--- a/src/main/java/forge/deck/generate/Generate5ColorDeck.java
+++ b/src/main/java/forge/deck/generate/Generate5ColorDeck.java
@@ -32,6 +32,7 @@ import forge.PlayerType;
import forge.Singletons;
import forge.error.ErrorViewer;
import forge.properties.ForgeProps;
+import forge.properties.ForgePreferences.FPref;
import forge.util.MyRandom;
/**
@@ -110,7 +111,7 @@ public class Generate5ColorDeck {
this.notColors.remove(this.color4);
this.notColors.remove(this.color5);
- if (Singletons.getModel().getPreferences().isDeckGenSingletons()) {
+ if (Singletons.getModel().getPreferences().getPrefBoolean(FPref.DECKGEN_SINGLETONS)) {
this.maxDuplicates = 1;
}
@@ -155,7 +156,7 @@ public class Generate5ColorDeck {
// reduce to cards that match the colors
CardList cL1 = allCards.getColor(this.color1);
- if (!Singletons.getModel().getPreferences().isDeckGenRmvArtifacts()) {
+ if (!Singletons.getModel().getPreferences().getPrefBoolean(FPref.DECKGEN_ARTIFACTS)) {
cL1.addAll(allCards.getColor(Constant.Color.COLORLESS));
}
CardList cL2 = allCards.getColor(this.color2);
diff --git a/src/main/java/forge/deck/generate/GenerateConstructedDeck.java b/src/main/java/forge/deck/generate/GenerateConstructedDeck.java
index dd95a25ec23..3466dcdc39b 100644
--- a/src/main/java/forge/deck/generate/GenerateConstructedDeck.java
+++ b/src/main/java/forge/deck/generate/GenerateConstructedDeck.java
@@ -30,6 +30,7 @@ import forge.CardListUtil;
import forge.CardUtil;
import forge.Constant;
import forge.Singletons;
+import forge.properties.ForgePreferences.FPref;
/**
*
@@ -182,7 +183,7 @@ public class GenerateConstructedDeck {
// is this really a colorless artifact and not something
// weird like Sarcomite Myr which is a colored artifact
return c.isArtifact() && CardUtil.getColors(c).contains(Constant.Color.COLORLESS)
- && !Singletons.getModel().getPreferences().isDeckGenRmvArtifacts();
+ && !Singletons.getModel().getPreferences().getPrefBoolean(FPref.DECKGEN_ARTIFACTS);
}
});
out.addAll(artifact);
@@ -191,7 +192,7 @@ public class GenerateConstructedDeck {
@Override
public boolean addCard(final Card c) {
if (c.isCreature() && (c.getNetAttack() <= 1)
- && Singletons.getModel().getPreferences().isDeckGenRmvSmall()) {
+ && Singletons.getModel().getPreferences().getPrefBoolean(FPref.DECKGEN_NOSMALL)) {
return false;
}
diff --git a/src/main/java/forge/deck/generate/GenerateConstructedMultiColorDeck.java b/src/main/java/forge/deck/generate/GenerateConstructedMultiColorDeck.java
index 01c0cf2e164..f2424c3a59b 100644
--- a/src/main/java/forge/deck/generate/GenerateConstructedMultiColorDeck.java
+++ b/src/main/java/forge/deck/generate/GenerateConstructedMultiColorDeck.java
@@ -30,6 +30,7 @@ import forge.CardListUtil;
import forge.CardUtil;
import forge.Constant;
import forge.Singletons;
+import forge.properties.ForgePreferences.FPref;
/**
*
@@ -381,7 +382,7 @@ public class GenerateConstructedMultiColorDeck {
// is this really a colorless artifact and not something
// wierd like Sarcomite Myr which is a colored artifact
return c.isArtifact() && CardUtil.getColors(c).contains(Constant.Color.COLORLESS)
- && !Singletons.getModel().getPreferences().isDeckGenRmvArtifacts();
+ && !Singletons.getModel().getPreferences().getPrefBoolean(FPref.DECKGEN_ARTIFACTS);
}
});
out.addAll(artifact);
@@ -390,7 +391,7 @@ public class GenerateConstructedMultiColorDeck {
@Override
public boolean addCard(final Card c) {
if (c.isCreature() && (c.getNetAttack() <= 1)
- && Singletons.getModel().getPreferences().isDeckGenRmvSmall()) {
+ && Singletons.getModel().getPreferences().getPrefBoolean(FPref.DECKGEN_NOSMALL)) {
return false;
}
@@ -436,7 +437,7 @@ public class GenerateConstructedMultiColorDeck {
// is this really a colorless artifact and not something
// wierd like Sarcomite Myr which is a colored artifact
return c.isArtifact() && CardUtil.getColors(c).contains(Constant.Color.COLORLESS)
- && !Singletons.getModel().getPreferences().isDeckGenRmvArtifacts();
+ && !Singletons.getModel().getPreferences().getPrefBoolean(FPref.DECKGEN_ARTIFACTS);
}
});
out.addAll(artifact);
@@ -445,7 +446,7 @@ public class GenerateConstructedMultiColorDeck {
@Override
public boolean addCard(final Card c) {
if (c.isCreature() && (c.getNetAttack() <= 1)
- && Singletons.getModel().getPreferences().isDeckGenRmvSmall()) {
+ && Singletons.getModel().getPreferences().getPrefBoolean(FPref.DECKGEN_NOSMALL)) {
return false;
}
diff --git a/src/main/java/forge/error/BugzReporter.java b/src/main/java/forge/error/BugzReporter.java
index 563f12f6861..de2525db81b 100644
--- a/src/main/java/forge/error/BugzReporter.java
+++ b/src/main/java/forge/error/BugzReporter.java
@@ -57,6 +57,7 @@ import org.mantisbt.connect.ui.DefaultSubmitter;
import forge.Singletons;
import forge.model.BuildInfo;
import forge.properties.ForgePreferences;
+import forge.properties.ForgePreferences.FPref;
import forge.properties.ForgeProps;
import forge.properties.NewConstants;
@@ -188,10 +189,10 @@ public class BugzReporter extends JDialog {
this.contentPanel.add(this.txtUserName);
this.txtUserName.setColumns(4);
try {
- this.prefs = new ForgePreferences("forge.preferences");
- if (!this.prefs.getBugzName().equals("")) {
- this.txtUserName.setText(this.prefs.getBugzName());
- this.txtPassword.setText(this.prefs.getBugzPwd());
+ this.prefs = new ForgePreferences();
+ if (!this.prefs.getPref(FPref.UI_BUGZ_NAME).equals("")) {
+ this.txtUserName.setText(this.prefs.getPref(FPref.UI_BUGZ_NAME));
+ this.txtPassword.setText(this.prefs.getPref(FPref.UI_BUGZ_PWD));
this.chkReportAnonymously.setSelected(false);
} else {
this.chkReportAnonymously.setSelected(true);
@@ -209,9 +210,9 @@ public class BugzReporter extends JDialog {
BugzReporter.this.txtUserName.setText("ForgeGUI");
BugzReporter.this.txtPassword.setText("vi2ccTbfBUu^");
} else {
- if (!BugzReporter.this.prefs.getBugzName().equals("")) {
- BugzReporter.this.txtUserName.setText(BugzReporter.this.prefs.getBugzName());
- BugzReporter.this.txtPassword.setText(BugzReporter.this.prefs.getBugzPwd());
+ if (!BugzReporter.this.prefs.getPref(FPref.UI_BUGZ_NAME).equals("")) {
+ BugzReporter.this.txtUserName.setText(BugzReporter.this.prefs.getPref(FPref.UI_BUGZ_NAME));
+ BugzReporter.this.txtPassword.setText(BugzReporter.this.prefs.getPref(FPref.UI_BUGZ_PWD));
}
}
}
@@ -458,8 +459,8 @@ public class BugzReporter extends JDialog {
break Report;
}
- this.prefs.setBugzName(this.txtUserName.getText());
- this.prefs.setBugzPwd(String.valueOf(this.txtPassword.getPassword()));
+ this.prefs.setPref(FPref.UI_BUGZ_NAME, this.txtUserName.getText());
+ this.prefs.setPref(FPref.UI_BUGZ_PWD, String.valueOf(this.txtPassword.getPassword()));
try {
this.prefs.save();
} catch (final Exception e) {
diff --git a/src/main/java/forge/model/FModel.java b/src/main/java/forge/model/FModel.java
index ec32b8b3e6e..dc6427ac466 100644
--- a/src/main/java/forge/model/FModel.java
+++ b/src/main/java/forge/model/FModel.java
@@ -36,6 +36,7 @@ import forge.gui.input.InputControl;
import forge.properties.ForgePreferences;
import forge.properties.ForgeProps;
import forge.properties.NewConstants;
+import forge.properties.ForgePreferences.FPref;
import forge.quest.data.QuestPreferences;
import forge.util.FileUtil;
import forge.util.HttpUtil;
@@ -86,7 +87,7 @@ public class FModel {
// Instantiate preferences
try {
- this.preferences = new ForgePreferences("forge.preferences");
+ this.preferences = new ForgePreferences();
} catch (final Exception exn) {
throw new RuntimeException(exn);
}
@@ -99,7 +100,7 @@ public class FModel {
// Unfortunately, they're tied up in legacy code in the Display interface,
// currently in GuiTopLevel. When that code is updated, this TODO should be resolved.
// Doublestrike 24-01-12
- Constant.Runtime.DEV_MODE[0] = preferences.isDeveloperMode();
+ Constant.Runtime.DEV_MODE[0] = preferences.getPrefBoolean(FPref.DEV_MODE_ENABLED);
// Instantiate AI
AllZone.setInputControl(new InputControl(FModel.this));
diff --git a/src/main/java/forge/properties/ForgePreferences.java b/src/main/java/forge/properties/ForgePreferences.java
index 888cc26d8fc..cdfc15b402c 100644
--- a/src/main/java/forge/properties/ForgePreferences.java
+++ b/src/main/java/forge/properties/ForgePreferences.java
@@ -19,14 +19,12 @@ package forge.properties;
import java.io.BufferedReader;
import java.io.BufferedWriter;
-import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
-import java.util.TreeSet;
/**
*
@@ -40,117 +38,118 @@ import java.util.TreeSet;
* @version $Id$
*/
public class ForgePreferences {
- private String fileName = "forge.preferences";
- private Map prefs;
+ private Map preferenceValues;
- /**
- * Initializes default values for preferences and sets a file address.
- *
- * Note: preferences must be loaded separately.
- *
- * @param s0 File address string
+ /**
+ * Preference identifiers, and their default values.
+ * When this class is instantiated, these enum values are used
+ * in a map that is populated with the current preferences
+ * from the text file.
*/
- public ForgePreferences(String s0) {
- this.fileName = s0;
- File f = new File(fileName);
+ public enum FPref { /** */
+ UI_USE_OLD ("false"), /** */
+ UI_RANDOM_FOIL ("false"), /** */
+ UI_LAYOUT_PARAMS ("0.15,0.55,0.68,0.73,0.44,0.40"), /** */
+ UI_SMOOTH_LAND ("false"), /** */
+ UI_USE_SKIN ("default"), /** */
+ UI_CARD_OVERLAY ("true"), /** */
+ UI_UPLOAD_DRAFT ("false"), /** */
+ UI_SCALE_LARGER ("false"), /** */
+ UI_MAX_STACK ("3"), /** */
+ UI_STACK_OFFSET ("tiny"), /** */
+ UI_CARD_SIZE ("small"), /** */
+ UI_BUGZ_NAME (""), /** */
+ UI_BUGZ_PWD (""), /** */
+ UI_ANTE ("false"), /** */
+ UI_SKIN ("default"), /** */
- if (!f.exists()) { makeNew(); }
- else { load(); }
+ DEV_MODE_ENABLED ("false"), /** */
+ DEV_MILLING_LOSS ("true"), /** */
+ DEV_UNLIMITED_LAND ("false"), /** */
- // Test for existence of old file
- if (prefs.get("ui.use.skin") == null) {
- makeNew();
+ DECKGEN_SINGLETONS ("false"), /** */
+ DECKGEN_ARTIFACTS ("false"), /** */
+ DECKGEN_NOSMALL ("false"), /** */
+
+ PHASE_AI_UPKEEP ("true"), /** */
+ PHASE_AI_DRAW ("true"), /** */
+ PHASE_AI_MAIN1 ("true"), /** */
+ PHASE_AI_BEGINCOMBAT ("true"), /** */
+ PHASE_AI_DECLAREATTACKERS ("true"), /** */
+ PHASE_AI_DECLAREBLOCKERS ("true"), /** */
+ PHASE_AI_FIRSTSTRIKE ("true"), /** */
+ PHASE_AI_COMBATDAMAGE ("true"), /** */
+ PHASE_AI_ENDCOMBAT ("true"), /** */
+ PHASE_AI_MAIN2 ("true"), /** */
+ PHASE_AI_EOT ("true"), /** */
+ PHASE_AI_CLEANUP ("true"), /** */
+
+ PHASE_HUMAN_UPKEEP ("true"), /** */
+ PHASE_HUMAN_DRAW ("true"), /** */
+ PHASE_HUMAN_MAIN1 ("true"), /** */
+ PHASE_HUMAN_BEGINCOMBAT ("true"), /** */
+ PHASE_HUMAN_DECLAREATTACKERS ("true"), /** */
+ PHASE_HUMAN_DECLAREBLOCKERS ("true"), /** */
+ PHASE_HUMAN_FIRSTSTRIKE ("true"), /** */
+ PHASE_HUMAN_COMBATDAMAGE ("true"), /** */
+ PHASE_HUMAN_ENDCOMBAT ("true"), /** */
+ PHASE_HUMAN_MAIN2 ("true"), /** */
+ PHASE_HUMAN_EOT ("true"), /** */
+ PHASE_HUMAN_CLEANUP ("true"), /** */
+
+ SHORTCUT_SHOWSTACK ("83"), /** */
+ SHORTCUT_SHOWCOMBAT ("67"), /** */
+ SHORTCUT_SHOWCONSOLE ("76"), /** */
+ SHORTCUT_SHOWPLAYERS ("80"), /** */
+ SHORTCUT_SHOWDEV ("68"), /** */
+ SHORTCUT_CONCEDE ("17");
+
+ private final String strDefaultVal;
+
+ /** @param s0 {@link java.lang.String} */
+ FPref(String s0) {
+ this.strDefaultVal = s0;
+ }
+
+ /** @return {@link java.lang.String} */
+ public String getDefault() {
+ return strDefaultVal;
}
}
- private void makeNew() {
- prefs = new HashMap();
- //========== Default values for all preferences:
- // UI preferences
- prefs.put("ui.use.old", "false");
- prefs.put("ui.random.foil", "false");
- prefs.put("ui.layout.params", "");
- prefs.put("ui.smooth.land", "false");
- prefs.put("ui.use.skin", "default");
- prefs.put("ui.card.overlay", "true");
- prefs.put("ui.upload.draft", "false");
- prefs.put("ui.scale.larger", "false");
- prefs.put("ui.max.stack", "3");
- prefs.put("ui.stack.offset", "tiny");
- prefs.put("ui.card.size", "small");
- prefs.put("ui.bugz.name", "");
- prefs.put("ui.bugz.pwd", "");
- prefs.put("ui.ante", "false");
-
- // Devmode preferences
- prefs.put("dev.mode", "false");
- prefs.put("dev.milling.loss", "true");
- prefs.put("dev.unlimited.land", "false");
-
- //Deck generation preferences
- prefs.put("deckgen.singletons", "false");
- prefs.put("deckgen.artifacts", "false");
- prefs.put("deckgen.nosmall", "false");
-
- // Phase toggle preferences
- prefs.put("phase.ai.upkeep", "true");
- prefs.put("phase.ai.draw", "true");
- prefs.put("phase.ai.main1", "true");
- prefs.put("phase.ai.beginCombat", "true");
- prefs.put("phase.ai.declareAttackers", "true");
- prefs.put("phase.ai.declareBlockers", "true");
- prefs.put("phase.ai.firstStrike", "true");
- prefs.put("phase.ai.combatDamage", "true");
- prefs.put("phase.ai.endCombat", "true");
- prefs.put("phase.ai.main2", "true");
- prefs.put("phase.ai.eot", "true");
- prefs.put("phase.ai.cleanup", "true");
-
- prefs.put("phase.human.upkeep", "true");
- prefs.put("phase.human.draw", "true");
- prefs.put("phase.human.main1", "true");
- prefs.put("phase.human.beginCombat", "true");
- prefs.put("phase.human.declareAttackers", "true");
- prefs.put("phase.human.declareBlockers", "true");
- prefs.put("phase.human.firstStrike", "true");
- prefs.put("phase.human.combatDamage", "true");
- prefs.put("phase.human.endCombat", "true");
- prefs.put("phase.human.main2", "true");
- prefs.put("phase.human.eot", "true");
- prefs.put("phase.human.cleanup", "true");
-
- // Keyboard shortcuts
- prefs.put("shortcut.showstack", "83");
- prefs.put("shortcut.showcombat", "67");
- prefs.put("shortcut.showconsole", "76");
- prefs.put("shortcut.showplayers", "80");
- prefs.put("shortcut.showdev", "68");
- prefs.put("shortcut.concede", "17");
-
- save();
+ /** */
+ public enum CardSizeType {
+ /** */
+ tiny, smaller, small, medium, large, huge
}
- //========== File handling
- /** Loads preferences from file into prefs map. */
- public void load() {
- BufferedReader reader = null;
+ /** */
+ public enum StackOffsetType {
+ /** */
+ tiny, small, medium, large
+ }
+ /** Instantiates a ForgePreferences object. */
+ public ForgePreferences() {
+ preferenceValues = new HashMap();
try {
+ final BufferedReader input = new BufferedReader(new FileReader(NewConstants.PREFERENCE_FILE));
String line = null;
- reader = new BufferedReader(new FileReader(fileName));
- prefs = new HashMap();
- while ((line = reader.readLine()) != null) {
- String[] pair = line.split("=");
- if (pair.length != 2) {
+ while ((line = input.readLine()) != null) {
+ if (line.startsWith("#") || (line.length() == 0)) {
continue;
}
- prefs.put(pair[0], pair[1]);
+
+ final String[] split = line.split("=");
+
+ if (split.length == 2) {
+ this.setPref(split[0], split[1]);
+ }
}
- reader.close();
} catch (FileNotFoundException ex) {
- ex.printStackTrace();
+ //ex.printStackTrace();
} catch (IOException ex) {
- ex.printStackTrace();
+ //ex.printStackTrace();
}
}
@@ -159,10 +158,9 @@ public class ForgePreferences {
BufferedWriter writer = null;
try {
- writer = new BufferedWriter(new FileWriter(fileName));
- TreeSet keys = new TreeSet(prefs.keySet());
- for (String key : keys) {
- writer.write(key + "=" + prefs.get(key));
+ writer = new BufferedWriter(new FileWriter(NewConstants.PREFERENCE_FILE));
+ for (FPref key : FPref.values()) {
+ writer.write(key + "=" + getPref(key));
writer.newLine();
}
@@ -175,286 +173,62 @@ public class ForgePreferences {
}
}
- //========== Enums
- /** */
- public static enum CardSizeType {
- /** */
- tiny, smaller, small, medium, large, huge
+ /**
+ * DUE TO BE DEPRECATED:
+ * Transition code between preference manager for v1.2.2 and v1.2.3.
+ * (string-based vs. enum-based)
+ *
+ * @param s0 {@link java.lang.String} identifier of preference
+ * @param s1 {@link java.lang.String} value
+ */
+ public void setPref(String s0, String s1) {
+ try {
+ preferenceValues.put(FPref.valueOf(s0), s1);
+ }
+ catch (Exception e) {
+ }
}
- /** */
- public static enum StackOffsetType {
- /** */
- tiny, small, medium, large
+ /**
+ * @param q0 {@link forge.properties.ForgePreferences.FPref}
+ * @param s0 {@link java.lang.String} value
+ */
+ public void setPref(FPref q0, String s0) {
+ preferenceValues.put(q0, s0);
}
- //========== Setters / getters: UI prefs
+ /**
+ * Returns a non-difficulty-indexed preference value.
+ *
+ * @param fp0 {@link forge.quest.data.ForgePreferences.FPref}
+ * @return String
+ */
+ public String getPref(FPref fp0) {
+ String val;
- /** @return boolean */
- public boolean isStackAiLand() {
- return Boolean.parseBoolean(prefs.get("ui.smooth.land"));
+ val = preferenceValues.get(fp0);
+ if (val == null) { val = fp0.getDefault(); }
+
+ return val;
}
- /** @param b0 boolean */
- public void setStackAiLand(boolean b0) {
- prefs.put("ui.smooth.land", Boolean.toString(b0));
+ /**
+ * Returns a non-difficulty-indexed preference value, as an int.
+ *
+ * @param fp0 {@link forge.quest.data.ForgePreferences.FPref}
+ * @return int
+ */
+ public int getPrefInt(FPref fp0) {
+ return Integer.parseInt(getPref(fp0));
}
- /** @return boolean */
- public boolean isOldGui() {
- return Boolean.parseBoolean(prefs.get("ui.use.old"));
- }
-
- /** @param b0 boolean */
- public void setOldGui(boolean b0) {
- prefs.put("ui.use.old", Boolean.toString(b0));
- }
-
- /** @return String of six values, comma delimited */
- public String getUILayout() {
- return prefs.get("ui.layout.params");
- }
-
- /** @param s0 String of six values, comma delimited */
- public void setUILayout(String s0) {
- prefs.put("ui.layout.params", s0);
- }
-
- /** @return boolean */
- public boolean isUploadDraftAI() {
- return Boolean.parseBoolean(prefs.get("ui.upload.draft"));
- }
-
- /** @param b0 boolean */
- public void setUploadDraftAI(boolean b0) {
- prefs.put("ui.upload.draft", Boolean.toString(b0));
- }
-
- /** @return the randCFoil */
- public boolean isRandCFoil() {
- return Boolean.parseBoolean(prefs.get("ui.random.foil"));
- }
-
- /** @param b0 boolean */
- public void setRandCFoil(boolean b0) {
- prefs.put("ui.random.foil", Boolean.toString(b0));
- }
-
- /** @param skin0 String skin name*/
- public void setSkin(String skin0) {
- prefs.put("ui.use.skin", skin0);
- }
-
- /** @return boolean*/
- public boolean isCardOverlay() {
- return Boolean.parseBoolean(prefs.get("ui.card.overlay"));
- }
-
- /** @param b0 boolean */
- public void setCardOverlay(boolean b0) {
- prefs.put("ui.card.overlay", Boolean.toString(b0));
- }
-
- /** @return int */
- public int getMaxStackSize() {
- return Integer.parseInt(prefs.get("ui.max.stack"));
- }
-
- /** @param i0 int, max stack size */
- public void setMaxStackSize(int i0) {
- prefs.put("ui.max.stack", Integer.toString(i0));
- }
-
- /** @return boolean */
- public boolean isScaleLargerThanOriginal() {
- return Boolean.parseBoolean(prefs.get("ui.scale.larger"));
- }
-
- /** @param b0 boolean */
- public void setScaleLargerThanOriginal(boolean b0) {
- prefs.put("ui.scale.larger", Boolean.toString(b0));
- }
-
- /** @return boolean */
- public boolean isPlayForAnte() {
- return Boolean.parseBoolean(prefs.get("ui.ante"));
- }
-
- /** @param b0 boolean */
- public void setPlayForAnte(boolean b0) {
- prefs.put("ui.ante", Boolean.toString(b0));
- }
-
- //========== Setters / getters: Dev mode prefs
-
- /** @return boolean */
- public boolean isMillingLossCondition() {
- return Boolean.parseBoolean(prefs.get("dev.milling.loss"));
- }
-
- /** @param b0 boolean */
- public void setMillingLossCondition(boolean b0) {
- prefs.put("dev.milling.loss", Boolean.toString(b0));
- }
-
- /** @return boolean */
- public boolean isUnlimitedLand() {
- return Boolean.parseBoolean(prefs.get("dev.unlimited.land"));
- }
-
- /** @param b0 boolean */
- public void setUnlimitedLand(boolean b0) {
- prefs.put("dev.unlimited.land", Boolean.toString(b0));
- }
-
- /** @return boolean */
- public boolean isDeveloperMode() {
- return Boolean.parseBoolean(prefs.get("dev.mode"));
- }
-
- /** @param b0 boolean */
- public void setDeveloperMode(boolean b0) {
- prefs.put("dev.mode", Boolean.toString(b0));
- }
-
- /** @return CardSizeType */
- public CardSizeType getCardSize() {
- return CardSizeType.valueOf(prefs.get("ui.card.size"));
- }
-
- /** @param cst0 CardSizeType */
- public void setCardSize(CardSizeType cst0) {
- prefs.put("ui.card.size", cst0.toString());
- }
-
- /** @return StackOffsetType */
- public StackOffsetType getStackOffset() {
- return StackOffsetType.valueOf(prefs.get("ui.stack.offset"));
- }
-
- /** @param sot0 StackOffsetType */
- public void setStackOffset(StackOffsetType sot0) {
- prefs.put("ui.stack.offset", sot0.toString());
- }
-
- /** @return String skin name */
- public String getSkin() {
- return prefs.get("ui.use.skin");
- }
-
- /** @return String */
- public String getBugzName() {
- return prefs.get("ui.bugz.name");
- }
-
- /** @param s0 String bugzName */
- public void setBugzName(String s0) {
- prefs.put("ui.bugz.name", s0);
- }
-
- /** @return String */
- public String getBugzPwd() {
- return prefs.get("ui.bugz.pwd");
- }
-
- /** @param s0 String password */
- public void setBugzPwd(String s0) {
- prefs.put("ui.bugz.pwd", s0);
- }
-
- //========== Setters / getters: Deck generation prefs
-
- /** @return boolean */
- public boolean isDeckGenSingletons() {
- return Boolean.parseBoolean(prefs.get("deckgen.singletons"));
- }
-
- /** @param b0 boolean */
- public void setDeckGenSingletons(boolean b0) {
- prefs.put("deckgen.singletons", Boolean.toString(b0));
- }
-
- /** @return boolean */
- public boolean isDeckGenRmvArtifacts() {
- return Boolean.parseBoolean(prefs.get("deckgen.artifacts"));
- }
-
- /** @param b0 boolean */
- public void setDeckGenRmvArtifacts(boolean b0) {
- prefs.put("deckgen.artifacts", Boolean.toString(b0));
- }
-
- /** @return boolean */
- public boolean isDeckGenRmvSmall() {
- return Boolean.parseBoolean(prefs.get("deckgen.nosmall"));
- }
-
- /** @param b0 boolean */
- public void setDeckGenRmvSmall(boolean b0) {
- prefs.put("deckgen.nosmall", Boolean.toString(b0));
- }
-
- //========== Phase and shortcut setter/getter
-
- /**
- * Prints exception stack trace if phase name is not in the list.
- * @param s0 String phase name
+ /**
+ * Returns a non-difficulty-indexed preference value, as a boolean.
+ *
+ * @param fp0 {@link forge.quest.data.ForgePreferences.FPref}
* @return boolean
*/
- public boolean isShowPhase(String s0) {
- if (prefs.get(s0) != null) {
- return Boolean.parseBoolean(prefs.get(s0));
- }
- else {
- Exception ex = new Exception();
- ex.printStackTrace();
- return true;
- }
- }
-
- /**
- * Prints exception stack trace if phase name is not in the list.
- * @param s0 String phase name
- * @param b0 boolean
- */
- public void setShowPhase(String s0, boolean b0) {
- if (prefs.get(s0) != null) {
- prefs.put(s0, Boolean.toString(b0));
- }
- else {
- Exception ex = new Exception();
- ex.printStackTrace();
- }
- }
-
- /**
- * Prints exception stack trace if shortcut is not in the list.
- * @param s0 String shortcut key code(s)
- * @return boolean
- */
- public String getKeyboardShortcut(String s0) {
- if (prefs.get(s0) != null) {
- return prefs.get(s0);
- }
- else {
- Exception ex = new Exception();
- ex.printStackTrace();
- return null;
- }
- }
-
- /**
- * Prints exception stack trace if shortcut is not in the list.
- * @param s0 String shortcut name
- * @param s1 String shortcut key code(s)
- */
- public void setKeyboardShortcut(String s0, String s1) {
- if (prefs.get(s0) != null) {
- prefs.put(s0, s1);
- }
- else {
- Exception ex = new Exception();
- ex.printStackTrace();
- }
+ public boolean getPrefBoolean(FPref fp0) {
+ return Boolean.parseBoolean(getPref(fp0));
}
}
diff --git a/src/main/java/forge/properties/NewConstants.java b/src/main/java/forge/properties/NewConstants.java
index 2527e3c34d2..c15ad4301f4 100644
--- a/src/main/java/forge/properties/NewConstants.java
+++ b/src/main/java/forge/properties/NewConstants.java
@@ -43,13 +43,15 @@ public final class NewConstants {
/** Constant CARDFORGE_URL = "program/cardforgeURL". */
public static final String CARDFORGE_URL = "program/cardforgeURL";
+ /** Constant CARDFORGE_URL = "program/cardforgeURL". */
+ public static final String PREFERENCE_FILE = "forge.preferences";
+
/** Constant DECKS="decks". */
public static final String DECKS = "decks";
/** Constant BOOSTER_DECKS="booster-decks". */
public static final String BOOSTER_DECKS = "booster-decks";
/** Constant NEW_DECKS="decks-dir". */
public static final String NEW_DECKS = "decks-dir";
-
/** Constant TOKENS="tokens". */
public static final String TOKENS = "tokens";
@@ -209,7 +211,8 @@ public final class NewConstants {
/** The PET_TOKEN_IMAGES. */
public static final String PET_TOKEN_IMAGES = "quest/pet/tokens";
-
+
+ /** */
public static final String PRECONS = "quest/precons-dir";
}
diff --git a/src/main/java/forge/quest/data/QuestPreferences.java b/src/main/java/forge/quest/data/QuestPreferences.java
index a3a71423b28..20dbeef365c 100644
--- a/src/main/java/forge/quest/data/QuestPreferences.java
+++ b/src/main/java/forge/quest/data/QuestPreferences.java
@@ -40,7 +40,6 @@ import forge.properties.NewConstants.Quest;
*/
@SuppressWarnings("serial")
public class QuestPreferences implements Serializable {
-
private Map preferenceValues;
/**
@@ -151,12 +150,15 @@ public class QuestPreferences implements Serializable {
}
final String[] split = line.split("=");
- this.setPreference(split[0], split[1]);
+
+ if (split.length == 2) {
+ this.setPreference(split[0], split[1]);
+ }
}
} catch (FileNotFoundException ex) {
- ex.printStackTrace();
+ //ex.printStackTrace();
} catch (IOException ex) {
- ex.printStackTrace();
+ //ex.printStackTrace();
}
}
@@ -187,8 +189,7 @@ public class QuestPreferences implements Serializable {
/**
* DUE TO BE DEPRECATED:
* Transition code between preference manager for v1.2.2 and v1.2.3.
- * Should be able to delete very neatly after release of 1.2.3,
- * perhaps sooner.
+ * (string-based vs. enum-based)
*
* @param s0 {@link java.lang.String} identifier of preference
* @param s1 {@link java.lang.String} value
@@ -202,7 +203,7 @@ public class QuestPreferences implements Serializable {
}
/**
- * @param q0 {@link forge.quest.data.CopyOfQuestPreferences.QPref}
+ * @param q0 {@link forge.quest.data.QuestPreferences.QPref}
* @param s0 {@link java.lang.String} value
*/
public void setPreference(QPref q0, String s0) {
@@ -212,7 +213,7 @@ public class QuestPreferences implements Serializable {
/**
* Returns a non-difficulty-indexed preference value.
*
- * @param qp0 {@link forge.quest.data.CopyOfQuestPreferences.QPref}
+ * @param qp0 {@link forge.quest.data.QuestPreferences.QPref}
* @return String
*/
public String getPreference(QPref qp0) {
@@ -237,7 +238,7 @@ public class QuestPreferences implements Serializable {
/**
* Returns a preference value according to a difficulty index.
*
- * @param qp0 {@link forge.quest.data.CopyOfQuestPreferences.QPref}
+ * @param qp0 {@link forge.quest.data.QuestPreferences.QPref}
* @param i0 int difficulty index
* @return String
*/
@@ -269,7 +270,7 @@ public class QuestPreferences implements Serializable {
/**
* Returns a non-difficulty-indexed preference value, as an int.
*
- * @param qp0 {@link forge.quest.data.CopyOfQuestPreferences.QPref}
+ * @param qp0 {@link forge.quest.data.QuestPreferences.QPref}
* @return int
*/
public int getPreferenceInt(QPref qp0) {
@@ -279,7 +280,7 @@ public class QuestPreferences implements Serializable {
/**
* Returns a difficulty-indexed preference value, as an int.
*
- * @param qp0 {@link forge.quest.data.CopyOfQuestPreferences.QPref}
+ * @param qp0 {@link forge.quest.data.QuestPreferences.QPref}
* @param i0 int difficulty index
* @return int
*/
diff --git a/src/main/java/forge/quest/gui/QuestWinLoseHandler.java b/src/main/java/forge/quest/gui/QuestWinLoseHandler.java
index 03c729a3d9d..8d43e1fb2d5 100644
--- a/src/main/java/forge/quest/gui/QuestWinLoseHandler.java
+++ b/src/main/java/forge/quest/gui/QuestWinLoseHandler.java
@@ -45,6 +45,7 @@ import forge.gui.GuiUtils;
import forge.gui.ListChooser;
import forge.item.CardPrinted;
import forge.model.FMatchState;
+import forge.properties.ForgePreferences.FPref;
import forge.quest.data.QuestChallenge;
import forge.quest.data.QuestData;
import forge.quest.data.QuestEvent;
@@ -103,7 +104,7 @@ public class QuestWinLoseHandler extends ControlWinLose {
this.model.qPrefs = Singletons.getModel().getQuestPreferences();
this.wonMatch = this.model.matchState.isMatchWonBy(AllZone.getHumanPlayer().getName());
this.skin = Singletons.getView().getSkin();
- this.isAnte = Singletons.getModel().getPreferences().isPlayForAnte();
+ this.isAnte = Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_ANTE);
}
/**
diff --git a/src/main/java/forge/view/GuiTopLevel.java b/src/main/java/forge/view/GuiTopLevel.java
index 8286239d24b..1d8385c7022 100644
--- a/src/main/java/forge/view/GuiTopLevel.java
+++ b/src/main/java/forge/view/GuiTopLevel.java
@@ -24,7 +24,6 @@ import java.util.List;
import javax.swing.JFrame;
import javax.swing.JLayeredPane;
-import javax.swing.JOptionPane;
import forge.AllZone;
import forge.Card;
@@ -39,8 +38,8 @@ import forge.Singletons;
import forge.control.FControl;
import forge.control.match.ControlField;
import forge.properties.ForgePreferences;
+import forge.properties.ForgePreferences.FPref;
import forge.view.match.ViewField;
-import forge.view.match.ViewTabber;
import forge.view.toolbox.FOverlay;
/**
@@ -317,41 +316,42 @@ public class GuiTopLevel extends JFrame implements Display, CardContainer {
final ForgePreferences fp = Singletons.getModel().getPreferences();
final List fieldViews = this.control.getMatchController().getView().getFieldViews();
- Constant.Runtime.MILL[0] = fp.isMillingLossCondition();
- Constant.Runtime.DEV_MODE[0] = fp.isDeveloperMode();
- Constant.Runtime.UPLOAD_DRAFT[0] = fp.isUploadDraftAI();
- Constant.Runtime.RANDOM_FOIL[0] = fp.isRandCFoil();
- Constant.Runtime.UPLOAD_DRAFT[0] = (Constant.Runtime.NET_CONN[0] ? fp.isUploadDraftAI() : false);
+ Constant.Runtime.MILL[0] = fp.getPrefBoolean(FPref.DEV_MILLING_LOSS);
+ Constant.Runtime.DEV_MODE[0] = fp.getPrefBoolean(FPref.DEV_MODE_ENABLED);
+ Constant.Runtime.UPLOAD_DRAFT[0] = fp.getPrefBoolean(FPref.UI_UPLOAD_DRAFT);
+ Constant.Runtime.RANDOM_FOIL[0] = fp.getPrefBoolean(FPref.UI_RANDOM_FOIL);
+ Constant.Runtime.UPLOAD_DRAFT[0] =
+ (Constant.Runtime.NET_CONN[0] ? fp.getPrefBoolean(FPref.UI_UPLOAD_DRAFT) : false);
// AI field is at index [0]
- fieldViews.get(0).getLblUpkeep().setEnabled(fp.isShowPhase("phase.ai.upkeep"));
- fieldViews.get(0).getLblDraw().setEnabled(fp.isShowPhase("phase.ai.draw"));
- fieldViews.get(0).getLblMain1().setEnabled(fp.isShowPhase("phase.ai.main1"));
- fieldViews.get(0).getLblBeginCombat().setEnabled(fp.isShowPhase("phase.ai.beginCombat"));
- fieldViews.get(0).getLblDeclareAttackers().setEnabled(fp.isShowPhase("phase.ai.declareAttackers"));
- fieldViews.get(0).getLblDeclareBlockers().setEnabled(fp.isShowPhase("phase.ai.declareBlockers"));
- fieldViews.get(0).getLblFirstStrike().setEnabled(fp.isShowPhase("phase.ai.firstStrike"));
- fieldViews.get(0).getLblCombatDamage().setEnabled(fp.isShowPhase("phase.ai.combatDamage"));
- fieldViews.get(0).getLblEndCombat().setEnabled(fp.isShowPhase("phase.ai.endCombat"));
- fieldViews.get(0).getLblMain2().setEnabled(fp.isShowPhase("phase.ai.main2"));
- fieldViews.get(0).getLblEndTurn().setEnabled(fp.isShowPhase("phase.ai.eot"));
- fieldViews.get(0).getLblCleanup().setEnabled(fp.isShowPhase("phase.ai.cleanup"));
+ fieldViews.get(0).getLblUpkeep().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_UPKEEP));
+ fieldViews.get(0).getLblDraw().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_DRAW));
+ fieldViews.get(0).getLblMain1().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_MAIN1));
+ fieldViews.get(0).getLblBeginCombat().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_BEGINCOMBAT));
+ fieldViews.get(0).getLblDeclareAttackers().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_DECLAREATTACKERS));
+ fieldViews.get(0).getLblDeclareBlockers().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_DECLAREBLOCKERS));
+ fieldViews.get(0).getLblFirstStrike().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_FIRSTSTRIKE));
+ fieldViews.get(0).getLblCombatDamage().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_COMBATDAMAGE));
+ fieldViews.get(0).getLblEndCombat().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_ENDCOMBAT));
+ fieldViews.get(0).getLblMain2().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_MAIN2));
+ fieldViews.get(0).getLblEndTurn().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_EOT));
+ fieldViews.get(0).getLblCleanup().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_CLEANUP));
// Human field is at index [1]
- fieldViews.get(1).getLblUpkeep().setEnabled(fp.isShowPhase("phase.human.upkeep"));
- fieldViews.get(1).getLblDraw().setEnabled(fp.isShowPhase("phase.human.draw"));
- fieldViews.get(1).getLblMain1().setEnabled(fp.isShowPhase("phase.human.main1"));
- fieldViews.get(1).getLblBeginCombat().setEnabled(fp.isShowPhase("phase.human.beginCombat"));
- fieldViews.get(1).getLblDeclareAttackers().setEnabled(fp.isShowPhase("phase.human.declareAttackers"));
- fieldViews.get(1).getLblDeclareBlockers().setEnabled(fp.isShowPhase("phase.human.declareBlockers"));
- fieldViews.get(1).getLblFirstStrike().setEnabled(fp.isShowPhase("phase.human.firstStrike"));
- fieldViews.get(1).getLblCombatDamage().setEnabled(fp.isShowPhase("phase.human.combatDamage"));
- fieldViews.get(1).getLblEndCombat().setEnabled(fp.isShowPhase("phase.human.endCombat"));
- fieldViews.get(1).getLblMain2().setEnabled(fp.isShowPhase("phase.human.main2"));
- fieldViews.get(1).getLblEndTurn().setEnabled(fp.isShowPhase("phase.human.eot"));
- fieldViews.get(1).getLblCleanup().setEnabled(fp.isShowPhase("phase.human.cleanup"));
+ fieldViews.get(1).getLblUpkeep().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_UPKEEP));
+ fieldViews.get(1).getLblDraw().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_DRAW));
+ fieldViews.get(1).getLblMain1().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_MAIN1));
+ fieldViews.get(1).getLblBeginCombat().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_BEGINCOMBAT));
+ fieldViews.get(1).getLblDeclareAttackers().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_DECLAREATTACKERS));
+ fieldViews.get(1).getLblDeclareBlockers().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_DECLAREBLOCKERS));
+ fieldViews.get(1).getLblFirstStrike().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_FIRSTSTRIKE));
+ fieldViews.get(1).getLblCombatDamage().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_COMBATDAMAGE));
+ fieldViews.get(1).getLblEndCombat().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_ENDCOMBAT));
+ fieldViews.get(1).getLblMain2().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_MAIN2));
+ fieldViews.get(1).getLblEndTurn().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_EOT));
+ fieldViews.get(1).getLblCleanup().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_CLEANUP));
- this.control.getMatchController().getView().setLayoutParams(fp.getUILayout());
+ this.control.getMatchController().getView().setLayoutParams(fp.getPref(FPref.UI_LAYOUT_PARAMS));
return true;
}
@@ -367,54 +367,6 @@ public class GuiTopLevel extends JFrame implements Display, CardContainer {
*/
@Override
public final boolean savePrefs() {
- final ForgePreferences fp = Singletons.getModel().getPreferences();
- final List fieldViews = this.control.getMatchController().getView().getFieldViews();
-
- // AI field is at index [0]
- fp.setShowPhase("phase.ai.upkeep", fieldViews.get(0).getLblUpkeep().getEnabled());
- fp.setShowPhase("phase.ai.draw", fieldViews.get(0).getLblDraw().getEnabled());
- fp.setShowPhase("phase.ai.main1", fieldViews.get(0).getLblMain1().getEnabled());
- fp.setShowPhase("phase.ai.beginCombat", fieldViews.get(0).getLblBeginCombat().getEnabled());
- fp.setShowPhase("phase.ai.declareAttackers", fieldViews.get(0).getLblDeclareAttackers().getEnabled());
- fp.setShowPhase("phase.ai.declareBlockers", fieldViews.get(0).getLblDeclareBlockers().getEnabled());
- fp.setShowPhase("phase.ai.firstStrike", fieldViews.get(0).getLblFirstStrike().getEnabled());
- fp.setShowPhase("phase.ai.combatDamage", fieldViews.get(0).getLblCombatDamage().getEnabled());
- fp.setShowPhase("phase.ai.endCombat", fieldViews.get(0).getLblEndCombat().getEnabled());
- fp.setShowPhase("phase.ai.main2", fieldViews.get(0).getLblMain2().getEnabled());
- fp.setShowPhase("phase.ai.eot", fieldViews.get(0).getLblEndTurn().getEnabled());
- fp.setShowPhase("phase.ai.cleanup", fieldViews.get(0).getLblCleanup().getEnabled());
-
- // Human field is at index [1]
- fp.setShowPhase("phase.human.upkeep", fieldViews.get(1).getLblUpkeep().getEnabled());
- fp.setShowPhase("phase.human.draw", fieldViews.get(1).getLblDraw().getEnabled());
- fp.setShowPhase("phase.human.main1", fieldViews.get(1).getLblMain1().getEnabled());
- fp.setShowPhase("phase.human.beginCombat", fieldViews.get(1).getLblBeginCombat().getEnabled());
- fp.setShowPhase("phase.human.declareAttackers", fieldViews.get(1).getLblDeclareAttackers().getEnabled());
- fp.setShowPhase("phase.human.declareBlockers", fieldViews.get(1).getLblDeclareBlockers().getEnabled());
- fp.setShowPhase("phase.human.firstStrike", fieldViews.get(1).getLblFirstStrike().getEnabled());
- fp.setShowPhase("phase.human.combatDamage", fieldViews.get(1).getLblCombatDamage().getEnabled());
- fp.setShowPhase("phase.human.endCombat", fieldViews.get(1).getLblEndCombat().getEnabled());
- fp.setShowPhase("phase.human.main2", fieldViews.get(1).getLblMain2().getEnabled());
- fp.setShowPhase("phase.human.eot", fieldViews.get(1).getLblEndTurn().getEnabled());
- fp.setShowPhase("phase.human.cleanup", fieldViews.get(1).getLblCleanup().getEnabled());
-
- ViewTabber v = this.control.getMatchController().getView().getTabberController().getView();
- Constant.Runtime.MILL[0] = v.getLblMilling().getEnabled();
-
- fp.setMillingLossCondition(Constant.Runtime.MILL[0]);
- fp.setUILayout(control.getMatchController().getView().getLayoutParams());
- fp.setUnlimitedLand(v.getLblUnlimitedLands().getEnabled());
-
- try {
- fp.save();
- } catch (final Exception ex) {
- final int result = JOptionPane.showConfirmDialog(this,
- "Preferences could not be saved. Continue to close without saving ?", "Confirm Exit",
- JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE);
- if (result != JOptionPane.OK_OPTION) {
- return false;
- }
- }
return true;
}
diff --git a/src/main/java/forge/view/Main.java b/src/main/java/forge/view/Main.java
index 85aaecacd5b..396b524b9dc 100644
--- a/src/main/java/forge/view/Main.java
+++ b/src/main/java/forge/view/Main.java
@@ -21,6 +21,7 @@ import forge.Singletons;
import forge.error.ErrorViewer;
import forge.error.ExceptionHandler;
import forge.model.FModel;
+import forge.properties.ForgePreferences.FPref;
import forge.view.toolbox.FSkin;
/**
@@ -45,7 +46,7 @@ public final class Main {
ExceptionHandler.registerErrorHandling();
try {
final FModel model = new FModel();
- final FSkin skin = new FSkin(model.getPreferences().getSkin());
+ final FSkin skin = new FSkin(model.getPreferences().getPref(FPref.UI_SKIN));
final FView view = new FView(skin);
Singletons.setModel(model);
diff --git a/src/main/java/forge/view/home/ViewSettings.java b/src/main/java/forge/view/home/ViewSettings.java
index 25052e86871..5bdd7607c98 100644
--- a/src/main/java/forge/view/home/ViewSettings.java
+++ b/src/main/java/forge/view/home/ViewSettings.java
@@ -33,6 +33,7 @@ import forge.Singletons;
import forge.control.KeyboardShortcuts;
import forge.control.KeyboardShortcuts.Shortcut;
import forge.control.home.ControlSettings;
+import forge.properties.ForgePreferences.FPref;
import forge.properties.ForgeProps;
import forge.properties.NewConstants.Lang.OldGuiNewGame.NewGameText;
import forge.view.GuiTopLevel;
@@ -88,19 +89,19 @@ public class ViewSettings extends JScrollPane {
final JLabel lblRemoveSmall = new NoteLabel("Disables 1/1 and 0/X creatures in generated decks.");
cbRemoveSmall = new OptionsCheckBox("Remove Small Creatures");
- cbRemoveSmall.setSelected(Singletons.getModel().getPreferences().isDeckGenRmvSmall());
+ cbRemoveSmall.setSelected(Singletons.getModel().getPreferences().getPrefBoolean(FPref.DECKGEN_NOSMALL));
viewport.add(cbRemoveSmall, regularConstraints);
viewport.add(lblRemoveSmall, regularConstraints);
final JLabel lblSingletons = new NoteLabel("Disables non-land duplicates in generated decks.");
cbSingletons = new OptionsCheckBox("Singleton Mode");
- cbSingletons.setSelected(Singletons.getModel().getPreferences().isDeckGenSingletons());
+ cbSingletons.setSelected(Singletons.getModel().getPreferences().getPrefBoolean(FPref.DECKGEN_SINGLETONS));
viewport.add(cbSingletons, regularConstraints);
viewport.add(lblSingletons, regularConstraints);
final JLabel lblRemoveArtifacts = new NoteLabel("Disables artifact cards in generated decks.");
cbRemoveArtifacts = new OptionsCheckBox("Remove Artifacts");
- cbRemoveArtifacts.setSelected(Singletons.getModel().getPreferences().isDeckGenRmvArtifacts());
+ cbRemoveArtifacts.setSelected(Singletons.getModel().getPreferences().getPrefBoolean(FPref.DECKGEN_ARTIFACTS));
viewport.add(cbRemoveArtifacts, regularConstraints);
viewport.add(lblRemoveArtifacts, regularConstraints);
@@ -109,25 +110,25 @@ public class ViewSettings extends JScrollPane {
viewport.add(lblTitleUI, sectionConstraints);
cbAnte = new OptionsCheckBox("Play for Ante");
- cbAnte.setSelected(Singletons.getModel().getPreferences().isPlayForAnte());
+ cbAnte.setSelected(Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_ANTE));
final JLabel lblAnte = new NoteLabel("Determines whether or not the game is played for ante.");
viewport.add(cbAnte, regularConstraints);
viewport.add(lblAnte, regularConstraints);
cbUploadDraft = new OptionsCheckBox("Upload Draft Pics");
- cbUploadDraft.setSelected(Singletons.getModel().getPreferences().isUploadDraftAI());
+ cbUploadDraft.setSelected(Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_UPLOAD_DRAFT));
final JLabel lblUploadDraft = new NoteLabel("Sends draft picks to Forge servers for analysis, to improve draft AI.");
viewport.add(cbUploadDraft, regularConstraints);
viewport.add(lblUploadDraft, regularConstraints);
cbStackLand = new OptionsCheckBox("Stack AI Land");
- cbStackLand.setSelected(Singletons.getModel().getPreferences().isStackAiLand());
+ cbStackLand.setSelected(Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_SMOOTH_LAND));
final JLabel lblStackLand = new NoteLabel("Minimizes mana lock in AI hands, giving a slight advantage to computer.");
viewport.add(cbStackLand, regularConstraints);
viewport.add(lblStackLand, regularConstraints);
cbDevMode = new OptionsCheckBox(ForgeProps.getLocalized(NewGameText.DEV_MODE));
- cbDevMode.setSelected(Singletons.getModel().getPreferences().isDeveloperMode());
+ cbDevMode.setSelected(Singletons.getModel().getPreferences().getPrefBoolean(FPref.DEV_MODE_ENABLED));
final JLabel lblDevMode = new NoteLabel("Enables menu with functions for testing during development.");
viewport.add(cbDevMode, regularConstraints);
viewport.add(lblDevMode, regularConstraints);
@@ -143,7 +144,7 @@ public class ViewSettings extends JScrollPane {
lstChooseSkin = new FList();
lstChooseSkin.setListData(FSkin.getSkins().toArray(new String[0]));
- lstChooseSkin.setSelectedValue(Singletons.getModel().getPreferences().getSkin(), true);
+ lstChooseSkin.setSelectedValue(Singletons.getModel().getPreferences().getPref(FPref.UI_SKIN), true);
lstChooseSkin.ensureIndexIsVisible(lstChooseSkin.getSelectedIndex());
viewport.add(new FScrollPane(lstChooseSkin), "h 60px!, w 150px!, gap 10% 0 0 2%, wrap");
@@ -156,19 +157,19 @@ public class ViewSettings extends JScrollPane {
final JLabel lblRandomFoil = new NoteLabel("Adds foiled effects to random cards.");
cbRandomFoil = new OptionsCheckBox("Random Foil");
- cbRandomFoil.setSelected(Singletons.getModel().getPreferences().isRandCFoil());
+ cbRandomFoil.setSelected(Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_RANDOM_FOIL));
viewport.add(cbRandomFoil, regularConstraints);
viewport.add(lblRandomFoil, regularConstraints);
final JLabel lblScaleLarger = new NoteLabel("Allows card pictures to be expanded larger than their original size.");
cbScaleLarger = new OptionsCheckBox("Scale Image Larger");
- cbScaleLarger.setSelected(Singletons.getModel().getPreferences().isScaleLargerThanOriginal());
+ cbScaleLarger.setSelected(Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_SCALE_LARGER));
viewport.add(cbScaleLarger, regularConstraints);
viewport.add(lblScaleLarger, regularConstraints);
final JLabel lblTextMana = new NoteLabel("Overlays each card with basic card-specific information.");
cbTextMana = new OptionsCheckBox("Text / Mana Overlay");
- cbTextMana.setSelected(Singletons.getModel().getPreferences().isCardOverlay());
+ cbTextMana.setSelected(Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_CARD_OVERLAY));
viewport.add(cbTextMana, regularConstraints);
viewport.add(lblTextMana, regularConstraints);
@@ -264,8 +265,8 @@ public class ViewSettings extends JScrollPane {
private class CardSizeRadio extends OptionsRadio {
public CardSizeRadio(String txt0) {
super(txt0);
- if (Singletons.getModel().getPreferences().getCardSize()
- .toString().equalsIgnoreCase(txt0)) {
+ if (Singletons.getModel().getPreferences().getPref(FPref.UI_CARD_SIZE)
+ .equalsIgnoreCase(txt0)) {
setSelected(true);
}
@@ -336,7 +337,7 @@ public class ViewSettings extends JScrollPane {
super();
this.setEditable(false);
this.setFont(skin.getFont(14));
- this.setCodeString(Singletons.getModel().getPreferences().getKeyboardShortcut(s0.getPrefKey()));
+ this.setCodeString(Singletons.getModel().getPreferences().getPref(s0.getPrefKey()));
this.addKeyListener(new KeyAdapter() {
@Override
@@ -353,7 +354,7 @@ public class ViewSettings extends JScrollPane {
@Override
public void focusLost(final FocusEvent e) {
- Singletons.getModel().getPreferences().setKeyboardShortcut(
+ Singletons.getModel().getPreferences().setPref(
s0.getPrefKey(), getCodeString());
Singletons.getModel().getPreferences().save();
s0.attach();
diff --git a/src/main/java/forge/view/match/ViewTabber.java b/src/main/java/forge/view/match/ViewTabber.java
index dfb635eedc4..bd280539487 100644
--- a/src/main/java/forge/view/match/ViewTabber.java
+++ b/src/main/java/forge/view/match/ViewTabber.java
@@ -58,6 +58,7 @@ import forge.card.spellability.SpellAbilityStackInstance;
import forge.control.match.ControlTabber;
import forge.gui.ForgeAction;
import forge.gui.MultiLineLabelUI;
+import forge.properties.ForgePreferences.FPref;
import forge.properties.NewConstants;
import forge.view.GuiTopLevel;
import forge.view.toolbox.FPanel;
@@ -428,7 +429,7 @@ public class ViewTabber extends FRoundedPanel {
} else {
temp[5].setText("");
}
- if (Singletons.getModel().getPreferences().isPlayForAnte()) {
+ if (Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_ANTE)) {
CardList list = p0.getCardsIn(Zone.Ante);
StringBuilder sb = new StringBuilder();
sb.append("Ante'd: ");