refactored CSubmenuPreferences

added UI_FOR_TOUNCHSCREEN preference
This commit is contained in:
Maxmtg
2013-05-26 14:19:26 +00:00
parent a5a8617ff0
commit e48821afbb
3 changed files with 49 additions and 146 deletions

View File

@@ -5,9 +5,11 @@ import java.awt.event.ItemListener;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import javax.swing.JCheckBox;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import org.apache.commons.lang3.text.WordUtils; import org.apache.commons.lang3.text.WordUtils;
import org.apache.commons.lang3.tuple.Pair;
import forge.Command; import forge.Command;
import forge.Constant.Preferences; import forge.Constant.Preferences;
@@ -19,6 +21,7 @@ import forge.gui.toolbox.FSkin;
import forge.properties.ForgePreferences; import forge.properties.ForgePreferences;
import forge.properties.ForgePreferences.FPref; import forge.properties.ForgePreferences.FPref;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
/** /**
* Controls the preferences submenu in the home UI. * Controls the preferences submenu in the home UI.
@@ -29,6 +32,9 @@ import java.util.ArrayList;
public enum CSubmenuPreferences implements ICDoc { public enum CSubmenuPreferences implements ICDoc {
/** */ /** */
SINGLETON_INSTANCE; SINGLETON_INSTANCE;
private final List<Pair<JCheckBox, FPref>> lstControls = new ArrayList<Pair<JCheckBox,FPref>>();
/* (non-Javadoc) /* (non-Javadoc)
* @see forge.control.home.IControlSubmenu#update() * @see forge.control.home.IControlSubmenu#update()
@@ -53,33 +59,7 @@ public enum CSubmenuPreferences implements ICDoc {
} }
}); });
view.getCbAnte().addItemListener(new ItemListener() { // This updates variable right now and is not standard
@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();
}
});
view.getCbDevMode().addItemListener(new ItemListener() { view.getCbDevMode().addItemListener(new ItemListener() {
@Override @Override
public void itemStateChanged(final ItemEvent arg0) { public void itemStateChanged(final ItemEvent arg0) {
@@ -90,109 +70,33 @@ public enum CSubmenuPreferences implements ICDoc {
} }
}); });
view.getCbEnforceDeckLegality().addItemListener(new ItemListener() { lstControls.clear(); // just in case
@Override lstControls.add(Pair.of(view.getCbAnte(), FPref.UI_ANTE));
public void itemStateChanged(final ItemEvent arg0) { lstControls.add(Pair.of(view.getCbManaBurn(), FPref.UI_MANABURN));
final boolean toggle = view.getCbEnforceDeckLegality().isSelected(); lstControls.add(Pair.of(view.getCbScaleLarger(), FPref.UI_SCALE_LARGER));
prefs.setPref(FPref.ENFORCE_DECK_LEGALITY, String.valueOf(toggle)); lstControls.add(Pair.of(view.getCbEnforceDeckLegality(), FPref.ENFORCE_DECK_LEGALITY));
prefs.save(); 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() { for(final Pair<JCheckBox, FPref> kv : lstControls) {
@Override kv.getKey().addItemListener(new ItemListener() {
public void itemStateChanged(final ItemEvent arg0) { @Override
final boolean toggle = view.getCbCloneImgSource().isSelected(); public void itemStateChanged(final ItemEvent arg0) {
prefs.setPref(FPref.UI_CLONE_MODE_SOURCE, String.valueOf(toggle)); prefs.setPref(kv.getValue(), String.valueOf(kv.getKey().isSelected()));
prefs.save(); 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();
}
});
view.getBtnReset().setCommand(new Command() { view.getBtnReset().setCommand(new Command() {
@Override @Override
@@ -215,22 +119,11 @@ public enum CSubmenuPreferences implements ICDoc {
updateSkinNames(); updateSkinNames();
updateAIProfiles(); 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.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)); for(Pair<JCheckBox, FPref> kv: lstControls) {
view.getCbRandomFoil().setSelected(prefs.getPrefBoolean(FPref.UI_RANDOM_FOIL)); kv.getKey().setSelected(prefs.getPrefBoolean(kv.getValue()));
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));
view.reloadShortcuts(); view.reloadShortcuts();
SwingUtilities.invokeLater(new Runnable() { SwingUtilities.invokeLater(new Runnable() {

View File

@@ -97,6 +97,7 @@ public enum VSubmenuPreferences implements IVSubmenu<CSubmenuPreferences> {
private final JCheckBox cbRandomizeArt = new OptionsCheckBox("Randomize Card Art"); private final JCheckBox cbRandomizeArt = new OptionsCheckBox("Randomize Card Art");
private final JCheckBox cbEnableSounds = new OptionsCheckBox("Enable Sounds"); private final JCheckBox cbEnableSounds = new OptionsCheckBox("Enable Sounds");
private final JCheckBox cbAltSoundSystem = new OptionsCheckBox("Use Alternate Sound System"); private final JCheckBox cbAltSoundSystem = new OptionsCheckBox("Use Alternate Sound System");
private final JCheckBox cbUiForTouchScreen = new OptionsCheckBox("Enchance UI for touchscreens");
private final Map<FPref, KeyboardShortcutField> shortcutFields = new HashMap<FPref, KeyboardShortcutField>(); private final Map<FPref, KeyboardShortcutField> shortcutFields = new HashMap<FPref, KeyboardShortcutField>();
@@ -170,6 +171,9 @@ public enum VSubmenuPreferences implements IVSubmenu<CSubmenuPreferences> {
pnlPrefs.add(cbScaleLarger, regularConstraints); pnlPrefs.add(cbScaleLarger, regularConstraints);
pnlPrefs.add(new NoteLabel("Allows card pictures to be expanded larger than their original size."), 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(cbTextMana, regularConstraints);
pnlPrefs.add(new NoteLabel("Overlays each card with basic card-specific information."), regularConstraints); pnlPrefs.add(new NoteLabel("Overlays each card with basic card-specific information."), regularConstraints);
@@ -179,8 +183,8 @@ public enum VSubmenuPreferences implements IVSubmenu<CSubmenuPreferences> {
pnlPrefs.add(cbEnableSounds, regularConstraints); pnlPrefs.add(cbEnableSounds, regularConstraints);
pnlPrefs.add(new NoteLabel("Enable sound effects during the game."), regularConstraints); pnlPrefs.add(new NoteLabel("Enable sound effects during the game."), regularConstraints);
pnlPrefs.add(cbAltSoundSystem, 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(new NoteLabel("Use the alternate sound system (only use in case your have issues with sound not playing or disappearing)"), regularConstraints);
// Keyboard shortcuts // Keyboard shortcuts
final JLabel lblShortcuts = new SectionLabel("Keyboard Shortcuts"); final JLabel lblShortcuts = new SectionLabel("Keyboard Shortcuts");
@@ -473,6 +477,10 @@ public enum VSubmenuPreferences implements IVSubmenu<CSubmenuPreferences> {
return cbAltSoundSystem; return cbAltSoundSystem;
} }
public final JCheckBox getCbUiForTouchScreen() {
return cbUiForTouchScreen;
}
/** @return {@link forge.gui.toolbox.FLabel} */ /** @return {@link forge.gui.toolbox.FLabel} */
public FLabel getBtnReset() { public FLabel getBtnReset() {
return btnReset; return btnReset;

View File

@@ -54,6 +54,8 @@ public class ForgePreferences extends PreferencesStore<ForgePreferences.FPref> {
UI_RANDOM_CARD_ART ("false"), UI_RANDOM_CARD_ART ("false"),
UI_CURRENT_AI_PROFILE (AiProfileUtil.AI_PROFILE_RANDOM_MATCH), UI_CURRENT_AI_PROFILE (AiProfileUtil.AI_PROFILE_RANDOM_MATCH),
UI_CLONE_MODE_SOURCE ("false"), /** */ UI_CLONE_MODE_SOURCE ("false"), /** */
UI_FOR_TOUCHSCREN("false"),
SUBMENU_CURRENTMENU (EMenuItem.CONSTRUCTED.toString()), SUBMENU_CURRENTMENU (EMenuItem.CONSTRUCTED.toString()),
SUBMENU_SANCTIONED ("false"), SUBMENU_SANCTIONED ("false"),