From e48821afbbaad5ff9daa0556f6858f4c52d48b72 Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Sun, 26 May 2013 14:19:26 +0000 Subject: [PATCH] refactored CSubmenuPreferences added UI_FOR_TOUNCHSCREEN preference --- .../home/settings/CSubmenuPreferences.java | 181 ++++-------------- .../home/settings/VSubmenuPreferences.java | 12 +- .../forge/properties/ForgePreferences.java | 2 + 3 files changed, 49 insertions(+), 146 deletions(-) diff --git a/src/main/java/forge/gui/home/settings/CSubmenuPreferences.java b/src/main/java/forge/gui/home/settings/CSubmenuPreferences.java index 9671959a2a0..f2d9e0381b4 100644 --- a/src/main/java/forge/gui/home/settings/CSubmenuPreferences.java +++ b/src/main/java/forge/gui/home/settings/CSubmenuPreferences.java @@ -5,9 +5,11 @@ import java.awt.event.ItemListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import javax.swing.JCheckBox; import javax.swing.SwingUtilities; import org.apache.commons.lang3.text.WordUtils; +import org.apache.commons.lang3.tuple.Pair; import forge.Command; import forge.Constant.Preferences; @@ -19,6 +21,7 @@ import forge.gui.toolbox.FSkin; import forge.properties.ForgePreferences; import forge.properties.ForgePreferences.FPref; import java.util.ArrayList; +import java.util.List; /** * Controls the preferences submenu in the home UI. @@ -29,6 +32,9 @@ import java.util.ArrayList; public enum CSubmenuPreferences implements ICDoc { /** */ SINGLETON_INSTANCE; + + + private final List> lstControls = new ArrayList>(); /* (non-Javadoc) * @see forge.control.home.IControlSubmenu#update() @@ -53,33 +59,7 @@ public enum CSubmenuPreferences implements ICDoc { } }); - view.getCbAnte().addItemListener(new ItemListener() { - @Override - public void itemStateChanged(final ItemEvent arg0) { - final boolean toggle = view.getCbAnte().isSelected(); - prefs.setPref(FPref.UI_ANTE, String.valueOf(toggle)); - prefs.save(); - } - }); - - view.getCbManaBurn().addItemListener(new ItemListener() { - @Override - public void itemStateChanged(final ItemEvent arg0) { - final boolean toggle = view.getCbManaBurn().isSelected(); - prefs.setPref(FPref.UI_MANABURN, String.valueOf(toggle)); - prefs.save(); - } - }); - - view.getCbScaleLarger().addItemListener(new ItemListener() { - @Override - public void itemStateChanged(final ItemEvent arg0) { - final boolean toggle = view.getCbScaleLarger().isSelected(); - prefs.setPref(FPref.UI_SCALE_LARGER, String.valueOf(toggle)); - prefs.save(); - } - }); - + // This updates variable right now and is not standard view.getCbDevMode().addItemListener(new ItemListener() { @Override public void itemStateChanged(final ItemEvent arg0) { @@ -90,109 +70,33 @@ public enum CSubmenuPreferences implements ICDoc { } }); - view.getCbEnforceDeckLegality().addItemListener(new ItemListener() { - @Override - public void itemStateChanged(final ItemEvent arg0) { - final boolean toggle = view.getCbEnforceDeckLegality().isSelected(); - prefs.setPref(FPref.ENFORCE_DECK_LEGALITY, String.valueOf(toggle)); - prefs.save(); - } - }); + lstControls.clear(); // just in case + lstControls.add(Pair.of(view.getCbAnte(), FPref.UI_ANTE)); + lstControls.add(Pair.of(view.getCbManaBurn(), FPref.UI_MANABURN)); + lstControls.add(Pair.of(view.getCbScaleLarger(), FPref.UI_SCALE_LARGER)); + lstControls.add(Pair.of(view.getCbEnforceDeckLegality(), FPref.ENFORCE_DECK_LEGALITY)); + lstControls.add(Pair.of(view.getCbCloneImgSource(), FPref.UI_CLONE_MODE_SOURCE)); + lstControls.add(Pair.of(view.getCbRemoveSmall(), FPref.DECKGEN_NOSMALL)); + lstControls.add(Pair.of(view.getCbRemoveArtifacts(), FPref.DECKGEN_ARTIFACTS)); + lstControls.add(Pair.of(view.getCbSingletons(), FPref.DECKGEN_SINGLETONS)); + lstControls.add(Pair.of(view.getCbUploadDraft(), FPref.UI_UPLOAD_DRAFT)); + lstControls.add(Pair.of(view.getCbStackLand(), FPref.UI_SMOOTH_LAND)); + lstControls.add(Pair.of(view.getCbRandomFoil(), FPref.UI_RANDOM_FOIL)); + lstControls.add(Pair.of(view.getCbTextMana(), FPref.UI_CARD_OVERLAY)); + lstControls.add(Pair.of(view.getCbRandomizeArt(), FPref.UI_RANDOM_CARD_ART)); + lstControls.add(Pair.of(view.getCbEnableSounds(), FPref.UI_ENABLE_SOUNDS)); + lstControls.add(Pair.of(view.getCbAltSoundSystem(), FPref.UI_ALT_SOUND_SYSTEM)); + lstControls.add(Pair.of(view.getCbUiForTouchScreen(), FPref.UI_FOR_TOUCHSCREN)); - view.getCbCloneImgSource().addItemListener(new ItemListener() { - @Override - public void itemStateChanged(final ItemEvent arg0) { - final boolean toggle = view.getCbCloneImgSource().isSelected(); - prefs.setPref(FPref.UI_CLONE_MODE_SOURCE, String.valueOf(toggle)); - prefs.save(); - } - }); - - view.getCbRemoveSmall().addItemListener(new ItemListener() { - @Override - public void itemStateChanged(final ItemEvent arg0) { - final boolean toggle = view.getCbRemoveSmall().isSelected(); - prefs.setPref(FPref.DECKGEN_NOSMALL, String.valueOf(toggle)); - prefs.save(); - } - }); - - view.getCbRemoveArtifacts().addItemListener(new ItemListener() { - @Override - public void itemStateChanged(final ItemEvent arg0) { - final boolean toggle = view.getCbRemoveArtifacts().isSelected(); - prefs.setPref(FPref.DECKGEN_ARTIFACTS, String.valueOf(toggle)); - prefs.save(); - } - }); - - view.getCbSingletons().addItemListener(new ItemListener() { - @Override - public void itemStateChanged(final ItemEvent arg0) { - final boolean toggle = view.getCbSingletons().isSelected(); - prefs.setPref(FPref.DECKGEN_SINGLETONS, String.valueOf(toggle)); - prefs.save(); - } - }); - - view.getCbUploadDraft().addItemListener(new ItemListener() { - @Override - public void itemStateChanged(final ItemEvent arg0) { - final boolean toggle = view.getCbUploadDraft().isSelected(); - prefs.setPref(FPref.UI_UPLOAD_DRAFT , String.valueOf(toggle)); - Preferences.UPLOAD_DRAFT = toggle; - prefs.save(); - } - }); - - view.getCbStackLand().addItemListener(new ItemListener() { - @Override - public void itemStateChanged(final ItemEvent arg0) { - prefs.setPref(FPref.UI_SMOOTH_LAND, view.getCbRandomFoil().isSelected()); - prefs.save(); - } - }); - - view.getCbRandomFoil().addItemListener(new ItemListener() { - @Override - public void itemStateChanged(final ItemEvent arg0) { - prefs.setPref(FPref.UI_RANDOM_FOIL, view.getCbRandomFoil().isSelected()); - prefs.save(); - } - }); - - view.getCbTextMana().addItemListener(new ItemListener() { - @Override - public void itemStateChanged(final ItemEvent arg0) { - final boolean toggle = view.getCbTextMana().isSelected(); - prefs.setPref(FPref.UI_CARD_OVERLAY, String.valueOf(toggle)); - prefs.save(); - } - }); - - view.getCbRandomizeArt().addItemListener(new ItemListener() { - @Override - public void itemStateChanged(final ItemEvent arg0) { - prefs.setPref(FPref.UI_RANDOM_CARD_ART, view.getCbRandomizeArt().isSelected()); - prefs.save(); - } - }); - - view.getCbEnableSounds().addItemListener(new ItemListener() { - @Override - public void itemStateChanged(final ItemEvent arg0) { - prefs.setPref(FPref.UI_ENABLE_SOUNDS, view.getCbEnableSounds().isSelected()); - prefs.save(); - } - }); - - view.getCbAltSoundSystem().addItemListener(new ItemListener() { - @Override - public void itemStateChanged(final ItemEvent arg0) { - prefs.setPref(FPref.UI_ALT_SOUND_SYSTEM, view.getCbAltSoundSystem().isSelected()); - prefs.save(); - } - }); + for(final Pair kv : lstControls) { + kv.getKey().addItemListener(new ItemListener() { + @Override + public void itemStateChanged(final ItemEvent arg0) { + prefs.setPref(kv.getValue(), String.valueOf(kv.getKey().isSelected())); + prefs.save(); + } + }); + } view.getBtnReset().setCommand(new Command() { @Override @@ -215,22 +119,11 @@ public enum CSubmenuPreferences implements ICDoc { updateSkinNames(); updateAIProfiles(); - view.getCbRemoveSmall().setSelected(prefs.getPrefBoolean(FPref.DECKGEN_NOSMALL)); - view.getCbSingletons().setSelected(prefs.getPrefBoolean(FPref.DECKGEN_SINGLETONS)); - view.getCbRemoveArtifacts().setSelected(prefs.getPrefBoolean(FPref.DECKGEN_ARTIFACTS)); - view.getCbAnte().setSelected(prefs.getPrefBoolean(FPref.UI_ANTE)); - view.getCbManaBurn().setSelected(prefs.getPrefBoolean(FPref.UI_MANABURN)); - view.getCbUploadDraft().setSelected(prefs.getPrefBoolean(FPref.UI_UPLOAD_DRAFT)); - view.getCbStackLand().setSelected(prefs.getPrefBoolean(FPref.UI_SMOOTH_LAND)); view.getCbDevMode().setSelected(prefs.getPrefBoolean(FPref.DEV_MODE_ENABLED)); - view.getCbEnforceDeckLegality().setSelected(prefs.getPrefBoolean(FPref.ENFORCE_DECK_LEGALITY)); - view.getCbCloneImgSource().setSelected(prefs.getPrefBoolean(FPref.UI_CLONE_MODE_SOURCE)); - view.getCbRandomFoil().setSelected(prefs.getPrefBoolean(FPref.UI_RANDOM_FOIL)); - view.getCbRandomizeArt().setSelected(prefs.getPrefBoolean(FPref.UI_RANDOM_CARD_ART)); - view.getCbScaleLarger().setSelected(prefs.getPrefBoolean(FPref.UI_SCALE_LARGER)); - view.getCbTextMana().setSelected(prefs.getPrefBoolean(FPref.UI_CARD_OVERLAY)); - view.getCbEnableSounds().setSelected(prefs.getPrefBoolean(FPref.UI_ENABLE_SOUNDS)); - view.getCbAltSoundSystem().setSelected(prefs.getPrefBoolean(FPref.UI_ALT_SOUND_SYSTEM)); + + for(Pair kv: lstControls) { + kv.getKey().setSelected(prefs.getPrefBoolean(kv.getValue())); + } view.reloadShortcuts(); SwingUtilities.invokeLater(new Runnable() { diff --git a/src/main/java/forge/gui/home/settings/VSubmenuPreferences.java b/src/main/java/forge/gui/home/settings/VSubmenuPreferences.java index e1bb18f32a6..08ba0b7d2c8 100644 --- a/src/main/java/forge/gui/home/settings/VSubmenuPreferences.java +++ b/src/main/java/forge/gui/home/settings/VSubmenuPreferences.java @@ -97,6 +97,7 @@ public enum VSubmenuPreferences implements IVSubmenu { private final JCheckBox cbRandomizeArt = new OptionsCheckBox("Randomize Card Art"); private final JCheckBox cbEnableSounds = new OptionsCheckBox("Enable Sounds"); private final JCheckBox cbAltSoundSystem = new OptionsCheckBox("Use Alternate Sound System"); + private final JCheckBox cbUiForTouchScreen = new OptionsCheckBox("Enchance UI for touchscreens"); private final Map shortcutFields = new HashMap(); @@ -170,6 +171,9 @@ public enum VSubmenuPreferences implements IVSubmenu { pnlPrefs.add(cbScaleLarger, regularConstraints); pnlPrefs.add(new NoteLabel("Allows card pictures to be expanded larger than their original size."), regularConstraints); + pnlPrefs.add(cbUiForTouchScreen, regularConstraints); + pnlPrefs.add(new NoteLabel("Increases some UI elements to provide a better experience on touchscreen devices. (Needs restart)"), regularConstraints); + pnlPrefs.add(cbTextMana, regularConstraints); pnlPrefs.add(new NoteLabel("Overlays each card with basic card-specific information."), regularConstraints); @@ -179,8 +183,8 @@ public enum VSubmenuPreferences implements IVSubmenu { pnlPrefs.add(cbEnableSounds, regularConstraints); pnlPrefs.add(new NoteLabel("Enable sound effects during the game."), regularConstraints); - pnlPrefs.add(cbAltSoundSystem, regularConstraints); - pnlPrefs.add(new NoteLabel("Use the alternate sound system (only use in case your have issues with sound not playing or disappearing)"), regularConstraints); + pnlPrefs.add(cbAltSoundSystem, regularConstraints); + pnlPrefs.add(new NoteLabel("Use the alternate sound system (only use in case your have issues with sound not playing or disappearing)"), regularConstraints); // Keyboard shortcuts final JLabel lblShortcuts = new SectionLabel("Keyboard Shortcuts"); @@ -473,6 +477,10 @@ public enum VSubmenuPreferences implements IVSubmenu { return cbAltSoundSystem; } + public final JCheckBox getCbUiForTouchScreen() { + return cbUiForTouchScreen; + } + /** @return {@link forge.gui.toolbox.FLabel} */ public FLabel getBtnReset() { return btnReset; diff --git a/src/main/java/forge/properties/ForgePreferences.java b/src/main/java/forge/properties/ForgePreferences.java index 27001b0aa13..6fcc447e766 100644 --- a/src/main/java/forge/properties/ForgePreferences.java +++ b/src/main/java/forge/properties/ForgePreferences.java @@ -54,6 +54,8 @@ public class ForgePreferences extends PreferencesStore { UI_RANDOM_CARD_ART ("false"), UI_CURRENT_AI_PROFILE (AiProfileUtil.AI_PROFILE_RANDOM_MATCH), UI_CLONE_MODE_SOURCE ("false"), /** */ + + UI_FOR_TOUCHSCREN("false"), SUBMENU_CURRENTMENU (EMenuItem.CONSTRUCTED.toString()), SUBMENU_SANCTIONED ("false"),