- Simplifying CEditorPreferences.java

- Adding Power/Toughness as hideable columns
- Fix a potential crash when trying to sort a column directly after hiding columns
This commit is contained in:
Sol
2012-07-21 16:35:09 +00:00
parent 236c29cc40
commit b5aff459f3
3 changed files with 75 additions and 71 deletions

View File

@@ -2,6 +2,8 @@ package forge.gui.deckeditor.controllers;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.Enumeration;
import java.util.HashMap;
import javax.swing.JCheckBox;
@@ -42,27 +44,44 @@ public enum CEditorPreferences implements ICDoc {
public void initialize() {
SEditorIO.loadPreferences();
VEditorPreferences.SINGLETON_INSTANCE.getChbCatalogColor().setSelected(
SColumnUtil.getColumn(ColumnName.CAT_COLOR).isShowing());
VEditorPreferences.SINGLETON_INSTANCE.getChbCatalogRarity().setSelected(
SColumnUtil.getColumn(ColumnName.CAT_RARITY).isShowing());
VEditorPreferences.SINGLETON_INSTANCE.getChbCatalogCMC().setSelected(
SColumnUtil.getColumn(ColumnName.CAT_CMC).isShowing());
VEditorPreferences.SINGLETON_INSTANCE.getChbCatalogSet().setSelected(
SColumnUtil.getColumn(ColumnName.CAT_SET).isShowing());
VEditorPreferences.SINGLETON_INSTANCE.getChbCatalogAI().setSelected(
SColumnUtil.getColumn(ColumnName.CAT_AI).isShowing());
VEditorPreferences.SINGLETON_INSTANCE.getChbDeckColor().setSelected(
SColumnUtil.getColumn(ColumnName.DECK_COLOR).isShowing());
VEditorPreferences.SINGLETON_INSTANCE.getChbDeckRarity().setSelected(
SColumnUtil.getColumn(ColumnName.DECK_RARITY).isShowing());
VEditorPreferences.SINGLETON_INSTANCE.getChbDeckCMC().setSelected(
SColumnUtil.getColumn(ColumnName.DECK_CMC).isShowing());
VEditorPreferences.SINGLETON_INSTANCE.getChbDeckSet().setSelected(
SColumnUtil.getColumn(ColumnName.DECK_SET).isShowing());
VEditorPreferences.SINGLETON_INSTANCE.getChbDeckAI().setSelected(
SColumnUtil.getColumn(ColumnName.DECK_AI).isShowing());
HashMap<JCheckBox, ColumnName> prefsDict = new HashMap<JCheckBox, SColumnUtil.ColumnName>();
// Simplified Column Preferences
VEditorPreferences prefsInstance = VEditorPreferences.SINGLETON_INSTANCE;
// Catalog
prefsDict.put(prefsInstance.getChbCatalogColor(), ColumnName.CAT_COLOR);
prefsDict.put(prefsInstance.getChbCatalogRarity(), ColumnName.CAT_RARITY);
prefsDict.put(prefsInstance.getChbCatalogCMC(), ColumnName.CAT_CMC);
prefsDict.put(prefsInstance.getChbCatalogSet(), ColumnName.CAT_SET);
prefsDict.put(prefsInstance.getChbCatalogAI(), ColumnName.CAT_AI);
prefsDict.put(prefsInstance.getChbCatalogPower(), ColumnName.CAT_POWER);
prefsDict.put(prefsInstance.getChbCatalogToughness(), ColumnName.CAT_TOUGHNESS);
// Deck
prefsDict.put(prefsInstance.getChbDeckColor(), ColumnName.DECK_COLOR);
prefsDict.put(prefsInstance.getChbDeckRarity(), ColumnName.DECK_RARITY);
prefsDict.put(prefsInstance.getChbDeckCMC(), ColumnName.DECK_CMC);
prefsDict.put(prefsInstance.getChbDeckSet(), ColumnName.DECK_SET);
prefsDict.put(prefsInstance.getChbDeckAI(), ColumnName.DECK_AI);
prefsDict.put(prefsInstance.getChbDeckPower(), ColumnName.DECK_POWER);
prefsDict.put(prefsInstance.getChbDeckToughness(), ColumnName.DECK_TOUGHNESS);
// Simplified assignments to be less verbose
for (JCheckBox key : prefsDict.keySet()) {
final ColumnName name = prefsDict.get(key);
key.setSelected(SColumnUtil.getColumn(name).isShowing());
key.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent arg0) {
SColumnUtil.toggleColumn(SColumnUtil.getColumn(name));
SEditorIO.savePreferences();
}
});
}
// Catalog/Deck Stats
VEditorPreferences.SINGLETON_INSTANCE.getChbCatalogStats().setSelected(
SEditorIO.getPref(EditorPreference.stats_catalog));
VEditorPreferences.SINGLETON_INSTANCE.getChbDeckStats().setSelected(
@@ -75,56 +94,6 @@ public enum CEditorPreferences implements ICDoc {
VCardCatalog.SINGLETON_INSTANCE.getPnlStats().setVisible(false);
}
VEditorPreferences.SINGLETON_INSTANCE.getChbCatalogColor().addItemListener(new ItemListener() {
@Override public void itemStateChanged(final ItemEvent e) {
SColumnUtil.toggleColumn(SColumnUtil.getColumn(ColumnName.CAT_COLOR));
SEditorIO.savePreferences(); } });
VEditorPreferences.SINGLETON_INSTANCE.getChbCatalogRarity().addItemListener(new ItemListener() {
@Override public void itemStateChanged(final ItemEvent e) {
SColumnUtil.toggleColumn(SColumnUtil.getColumn(ColumnName.CAT_RARITY));
SEditorIO.savePreferences(); } });
VEditorPreferences.SINGLETON_INSTANCE.getChbCatalogCMC().addItemListener(new ItemListener() {
@Override public void itemStateChanged(final ItemEvent e) {
SColumnUtil.toggleColumn(SColumnUtil.getColumn(ColumnName.CAT_CMC));
SEditorIO.savePreferences(); } });
VEditorPreferences.SINGLETON_INSTANCE.getChbCatalogSet().addItemListener(new ItemListener() {
@Override public void itemStateChanged(final ItemEvent e) {
SColumnUtil.toggleColumn(SColumnUtil.getColumn(ColumnName.CAT_SET));
SEditorIO.savePreferences(); } });
VEditorPreferences.SINGLETON_INSTANCE.getChbCatalogAI().addItemListener(new ItemListener() {
@Override public void itemStateChanged(final ItemEvent e) {
SColumnUtil.toggleColumn(SColumnUtil.getColumn(ColumnName.CAT_AI));
SEditorIO.savePreferences(); } });
VEditorPreferences.SINGLETON_INSTANCE.getChbDeckColor().addItemListener(new ItemListener() {
@Override public void itemStateChanged(final ItemEvent e) {
SColumnUtil.toggleColumn(SColumnUtil.getColumn(ColumnName.DECK_COLOR));
SEditorIO.savePreferences(); } });
VEditorPreferences.SINGLETON_INSTANCE.getChbDeckRarity().addItemListener(new ItemListener() {
@Override public void itemStateChanged(final ItemEvent e) {
SColumnUtil.toggleColumn(SColumnUtil.getColumn(ColumnName.DECK_RARITY));
SEditorIO.savePreferences(); } });
VEditorPreferences.SINGLETON_INSTANCE.getChbDeckCMC().addItemListener(new ItemListener() {
@Override public void itemStateChanged(final ItemEvent e) {
SColumnUtil.toggleColumn(SColumnUtil.getColumn(ColumnName.DECK_CMC));
SEditorIO.savePreferences(); } });
VEditorPreferences.SINGLETON_INSTANCE.getChbDeckSet().addItemListener(new ItemListener() {
@Override public void itemStateChanged(final ItemEvent e) {
SColumnUtil.toggleColumn(SColumnUtil.getColumn(ColumnName.DECK_SET));
SEditorIO.savePreferences(); } });
VEditorPreferences.SINGLETON_INSTANCE.getChbDeckAI().addItemListener(new ItemListener() {
@Override public void itemStateChanged(final ItemEvent e) {
SColumnUtil.toggleColumn(SColumnUtil.getColumn(ColumnName.DECK_AI));
SEditorIO.savePreferences(); } });
VEditorPreferences.SINGLETON_INSTANCE.getChbCatalogStats().addItemListener(new ItemListener() {
@Override public void itemStateChanged(final ItemEvent e) {
VCardCatalog.SINGLETON_INSTANCE.getPnlStats().setVisible(

View File

@@ -253,7 +253,9 @@ public final class TableModel<T extends InventoryItem> extends AbstractTableMode
}
// This will invert if needed
TableModel.this.cascadeManager.add((TableColumnInfo<T>) this.table.getColumnModel().getColumn(modelIndex));
// 2012/07/21 - Changed from modelIndex to ColumnModelIndex due to a crash
// Crash was: Hide 2 columns, then search by last column.
TableModel.this.cascadeManager.add((TableColumnInfo<T>) this.table.getColumnModel().getColumn(columnModelIndex));
TableModel.this.refreshSort();
TableModel.this.table.tableChanged(new TableModelEvent(TableModel.this));
TableModel.this.table.repaint();

View File

@@ -47,12 +47,16 @@ public enum VEditorPreferences implements IVDoc {
private JCheckBox chbCatalogCMC = new FCheckBox("CMC");
private JCheckBox chbCatalogSet = new FCheckBox("Set");
private JCheckBox chbCatalogAI = new FCheckBox("AI");
private JCheckBox chbCatalogPower = new FCheckBox("Power");
private JCheckBox chbCatalogToughness = new FCheckBox("Toughness");
private JCheckBox chbDeckColor = new FCheckBox("Color");
private JCheckBox chbDeckRarity = new FCheckBox("Rarity");
private JCheckBox chbDeckCMC = new FCheckBox("CMC");
private JCheckBox chbDeckSet = new FCheckBox("Set");
private JCheckBox chbDeckAI = new FCheckBox("AI");
private JCheckBox chbDeckPower = new FCheckBox("Power");
private JCheckBox chbDeckToughness = new FCheckBox("Toughness");
private JCheckBox chbDeckStats = new FCheckBox("Show stats in current deck");
private JCheckBox chbCatalogStats = new FCheckBox("Show stats in card catalog");
@@ -71,12 +75,17 @@ public enum VEditorPreferences implements IVDoc {
chbCatalogCMC.setFont(FSkin.getFont(12));
chbCatalogSet.setFont(FSkin.getFont(12));
chbCatalogAI.setFont(FSkin.getFont(12));
chbCatalogPower.setFont(FSkin.getFont(12));
chbCatalogToughness.setFont(FSkin.getFont(12));
chbDeckColor.setFont(FSkin.getFont(12));
chbDeckRarity.setFont(FSkin.getFont(12));
chbDeckCMC.setFont(FSkin.getFont(12));
chbDeckSet.setFont(FSkin.getFont(12));
chbDeckAI.setFont(FSkin.getFont(12));
chbDeckPower.setFont(FSkin.getFont(12));
chbDeckToughness.setFont(FSkin.getFont(12));
chbDeckStats.setFont(FSkin.getFont(12));
chbCatalogStats.setFont(FSkin.getFont(12));
@@ -93,6 +102,8 @@ public enum VEditorPreferences implements IVDoc {
pnl.add(chbCatalogRarity, constraints);
pnl.add(chbCatalogCMC, constraints);
pnl.add(chbCatalogSet, constraints);
pnl.add(chbCatalogPower, constraints);
pnl.add(chbCatalogToughness, constraints);
pnl.add(chbCatalogAI, constraints + ", wrap");
pnl.add(lblDeck, constraints + ", span 2 1");
@@ -100,6 +111,8 @@ public enum VEditorPreferences implements IVDoc {
pnl.add(chbDeckRarity, constraints);
pnl.add(chbDeckCMC, constraints);
pnl.add(chbDeckSet, constraints);
pnl.add(chbDeckPower, constraints);
pnl.add(chbDeckToughness, constraints);
pnl.add(chbDeckAI, constraints);
pnl.setOpaque(false);
@@ -185,6 +198,16 @@ public enum VEditorPreferences implements IVDoc {
public JCheckBox getChbCatalogAI() {
return chbCatalogAI;
}
/** @return {@link javax.swing.JCheckBox} */
public JCheckBox getChbCatalogPower() {
return chbCatalogPower;
}
/** @return {@link javax.swing.JCheckBox} */
public JCheckBox getChbCatalogToughness() {
return chbCatalogToughness;
}
/** @return {@link javax.swing.JCheckBox} */
public JCheckBox getChbDeckColor() {
@@ -210,6 +233,16 @@ public enum VEditorPreferences implements IVDoc {
public JCheckBox getChbDeckAI() {
return chbDeckAI;
}
/** @return {@link javax.swing.JCheckBox} */
public JCheckBox getChbDeckPower() {
return chbDeckPower;
}
/** @return {@link javax.swing.JCheckBox} */
public JCheckBox getChbDeckToughness() {
return chbDeckToughness;
}
/** @return {@link javax.swing.JCheckBox} */
public JCheckBox getChbDeckStats() {