mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
Don't retain selection when clicking to change column sort
Support showing color deck options in proper order with no column header
This commit is contained in:
@@ -76,6 +76,16 @@ public abstract class DeckBase implements Serializable, Comparable<DeckBase>, In
|
|||||||
return this.name;
|
return this.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return this.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Comparable<?> getCompareValue() {
|
||||||
|
return this.name;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the comment.
|
* Sets the comment.
|
||||||
*
|
*
|
||||||
@@ -133,5 +143,4 @@ public abstract class DeckBase implements Serializable, Comparable<DeckBase>, In
|
|||||||
public final String getBestFileName() {
|
public final String getBestFileName() {
|
||||||
return this.getName().replaceAll("[^-_$#@.,{[()]} a-zA-Z0-9]", "");
|
return this.getName().replaceAll("[^-_$#@.,{[()]} a-zA-Z0-9]", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,4 +31,11 @@ public interface InventoryItem extends IHasName
|
|||||||
* @return the type
|
* @return the type
|
||||||
*/
|
*/
|
||||||
String getItemType();
|
String getItemType();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return object used to compare this item with other items
|
||||||
|
*
|
||||||
|
* @return the compare object
|
||||||
|
*/
|
||||||
|
Comparable<?> getCompareValue();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -172,6 +172,11 @@ public final class PaperCard implements Comparable<IPaperCard>, InventoryItemFro
|
|||||||
// return String.format("%s|%s", name, cardSet);
|
// return String.format("%s|%s", name, cardSet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Comparable<?> getCompareValue() {
|
||||||
|
return this.name;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (non-Javadoc)
|
* (non-Javadoc)
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -47,6 +47,10 @@ public class PaperToken implements InventoryItemFromSet, IPaperCard {
|
|||||||
|
|
||||||
@Override public String getName() { return name; }
|
@Override public String getName() { return name; }
|
||||||
|
|
||||||
|
@Override public String toString() { return name; }
|
||||||
|
|
||||||
|
@Override public Comparable<?> getCompareValue() { return name; }
|
||||||
|
|
||||||
@Override public String getEdition() { return edition.getCode(); }
|
@Override public String getEdition() { return edition.getCode(); }
|
||||||
|
|
||||||
@Override public int getArtIndex() { return 0; } // This might change however
|
@Override public int getArtIndex() { return 0; } // This might change however
|
||||||
|
|||||||
@@ -63,6 +63,16 @@ public class PreconDeck implements InventoryItemFromSet {
|
|||||||
return "Prebuilt Deck";
|
return "Prebuilt Deck";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return this.deck.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Comparable<?> getCompareValue() {
|
||||||
|
return this.deck.getCompareValue();
|
||||||
|
}
|
||||||
|
|
||||||
public PreconDeck(final Deck d, String set, String description) {
|
public PreconDeck(final Deck d, String set, String description) {
|
||||||
deck = d;
|
deck = d;
|
||||||
this.set = set;
|
this.set = set;
|
||||||
|
|||||||
@@ -99,6 +99,16 @@ public abstract class SealedProduct implements InventoryItemFromSet {
|
|||||||
return hash;
|
return hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return getName();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Comparable<?> getCompareValue() {
|
||||||
|
return getName();
|
||||||
|
}
|
||||||
|
|
||||||
protected List<PaperCard> generate() {
|
protected List<PaperCard> generate() {
|
||||||
return BoosterGenerator.getBoosterPack(contents);
|
return BoosterGenerator.getBoosterPack(contents);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import java.util.Arrays;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
|
|
||||||
import net.miginfocom.swing.MigLayout;
|
import net.miginfocom.swing.MigLayout;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@@ -113,8 +114,16 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private class ColorDeckGenerator extends DeckGenerator {
|
private class ColorDeckGenerator extends DeckGenerator {
|
||||||
public ColorDeckGenerator(String name0) {
|
private int index;
|
||||||
|
|
||||||
|
public ColorDeckGenerator(String name0, int index0) {
|
||||||
super(name0);
|
super(name0);
|
||||||
|
this.index = index0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Comparable<?> getCompareValue() {
|
||||||
|
return this.index; //ensure color items appear in proper order
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -133,15 +142,12 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
|
|||||||
private void updateColors() {
|
private void updateColors() {
|
||||||
lstDecks.setAllowMultipleSelections(true);
|
lstDecks.setAllowMultipleSelections(true);
|
||||||
|
|
||||||
|
String[] colors = new String[] { "Random 1", "Random 2", "Random 3",
|
||||||
|
"White", "Blue", "Black", "Red", "Green" };
|
||||||
ArrayList<Deck> decks = new ArrayList<Deck>();
|
ArrayList<Deck> decks = new ArrayList<Deck>();
|
||||||
decks.add(new ColorDeckGenerator("Random 1"));
|
for (int i = 0; i < colors.length; i++) {
|
||||||
decks.add(new ColorDeckGenerator("Random 2"));
|
decks.add(new ColorDeckGenerator(colors[i], i));
|
||||||
decks.add(new ColorDeckGenerator("Random 3"));
|
}
|
||||||
decks.add(new ColorDeckGenerator("White"));
|
|
||||||
decks.add(new ColorDeckGenerator("Blue"));
|
|
||||||
decks.add(new ColorDeckGenerator("Black"));
|
|
||||||
decks.add(new ColorDeckGenerator("Red"));
|
|
||||||
decks.add(new ColorDeckGenerator("Green"));
|
|
||||||
|
|
||||||
lstDecks.setPool(decks);
|
lstDecks.setPool(decks);
|
||||||
lstDecks.update(true);
|
lstDecks.update(true);
|
||||||
|
|||||||
@@ -6,8 +6,6 @@ import java.awt.Rectangle;
|
|||||||
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseEvent;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
|
||||||
|
|
||||||
import javax.swing.JMenu;
|
import javax.swing.JMenu;
|
||||||
import javax.swing.JTable;
|
import javax.swing.JTable;
|
||||||
import javax.swing.event.ListSelectionEvent;
|
import javax.swing.event.ListSelectionEvent;
|
||||||
@@ -56,7 +54,7 @@ public final class DeckManager extends ItemManager<Deck> {
|
|||||||
private static final FSkin.SkinIcon icoEditOver = FSkin.getIcon(FSkin.InterfaceIcons.ICO_EDIT_OVER);
|
private static final FSkin.SkinIcon icoEditOver = FSkin.getIcon(FSkin.InterfaceIcons.ICO_EDIT_OVER);
|
||||||
|
|
||||||
private final GameType gametype;
|
private final GameType gametype;
|
||||||
private boolean nameOnly, preventEdit;
|
private boolean stringOnly, preventEdit;
|
||||||
private Command cmdDelete, cmdSelect;
|
private Command cmdDelete, cmdSelect;
|
||||||
private final Map<ColumnDef, ItemColumn> columns = SColumnUtil.getColumns(
|
private final Map<ColumnDef, ItemColumn> columns = SColumnUtil.getColumns(
|
||||||
ColumnDef.DECK_ACTIONS,
|
ColumnDef.DECK_ACTIONS,
|
||||||
@@ -102,28 +100,27 @@ public final class DeckManager extends ItemManager<Deck> {
|
|||||||
public void update() {
|
public void update() {
|
||||||
update(false, false);
|
update(false, false);
|
||||||
}
|
}
|
||||||
public void update(boolean nameOnly0) {
|
public void update(boolean stringOnly0) {
|
||||||
update(nameOnly0, nameOnly0);
|
update(stringOnly0, stringOnly0);
|
||||||
}
|
}
|
||||||
public void update(boolean nameOnly0, boolean preventEdit0) {
|
public void update(boolean stringOnly0, boolean preventEdit0) {
|
||||||
if (this.nameOnly != nameOnly0) {
|
if (this.stringOnly != stringOnly0) {
|
||||||
this.nameOnly = nameOnly0;
|
this.stringOnly = stringOnly0;
|
||||||
boolean visible = !nameOnly0;
|
|
||||||
for (Entry<ColumnDef, ItemColumn> column : columns.entrySet()) {
|
|
||||||
if (column.getKey() != ColumnDef.NAME) {
|
|
||||||
column.getValue().setVisible(visible);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.restoreDefaultFilters();
|
this.restoreDefaultFilters();
|
||||||
}
|
}
|
||||||
if (nameOnly0) {
|
if (stringOnly0) {
|
||||||
preventEdit0 = true; //if name only, always prevent edit
|
preventEdit0 = true; //if name only, always prevent edit
|
||||||
}
|
}
|
||||||
if (this.preventEdit != preventEdit0) {
|
if (this.preventEdit != preventEdit0) {
|
||||||
this.preventEdit = preventEdit0;
|
this.preventEdit = preventEdit0;
|
||||||
columns.get(ColumnDef.DECK_ACTIONS).setVisible(!preventEdit0);
|
columns.get(ColumnDef.DECK_ACTIONS).setVisible(!preventEdit0);
|
||||||
}
|
}
|
||||||
this.getTable().setup(columns);
|
if (stringOnly0) {
|
||||||
|
this.getTable().setup(SColumnUtil.getStringColumn());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.getTable().setup(columns);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -146,7 +143,7 @@ public final class DeckManager extends ItemManager<Deck> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void addDefaultFilters() {
|
protected void addDefaultFilters() {
|
||||||
if (!this.nameOnly) {
|
if (!this.stringOnly) {
|
||||||
addFilter(new DeckColorFilter(this));
|
addFilter(new DeckColorFilter(this));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -158,7 +155,7 @@ public final class DeckManager extends ItemManager<Deck> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void buildAddFilterMenu(JMenu menu) {
|
protected void buildAddFilterMenu(JMenu menu) {
|
||||||
if (this.nameOnly) { return; }
|
if (this.stringOnly) { return; }
|
||||||
|
|
||||||
GuiUtils.addSeparator(menu); //separate from current search item
|
GuiUtils.addSeparator(menu); //separate from current search item
|
||||||
|
|
||||||
|
|||||||
@@ -917,7 +917,7 @@ public abstract class ItemManager<T extends InventoryItem> extends JPanel {
|
|||||||
this.model.addItems(this.pool);
|
this.model.addItems(this.pool);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.table.refresh(itemsToSelect, backupIndexToSelect, false);
|
this.table.refresh(itemsToSelect, backupIndexToSelect);
|
||||||
|
|
||||||
for (ItemFilter<? extends T> filter : this.orderedFilters) {
|
for (ItemFilter<? extends T> filter : this.orderedFilters) {
|
||||||
filter.afterFiltersApplied();
|
filter.afterFiltersApplied();
|
||||||
|
|||||||
@@ -52,7 +52,6 @@ import forge.limited.DraftRankCache;
|
|||||||
*
|
*
|
||||||
* @param <T> a generic type
|
* @param <T> a generic type
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class ItemColumn extends TableColumn {
|
public class ItemColumn extends TableColumn {
|
||||||
private static final long serialVersionUID = 3749431834643427572L;
|
private static final long serialVersionUID = 3749431834643427572L;
|
||||||
|
|
||||||
@@ -166,6 +165,19 @@ public class ItemColumn extends TableColumn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public enum ColumnDef {
|
public enum ColumnDef {
|
||||||
|
STRING("", "", 0, -1, -1, SortState.ASC, new ItemCellRenderer(),
|
||||||
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
|
@Override
|
||||||
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
|
return from.getKey().getCompareValue();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||||
|
@Override
|
||||||
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
|
return from.getKey().toString();
|
||||||
|
}
|
||||||
|
}),
|
||||||
NAME("Name", "Name", 180, -1, -1, SortState.ASC, new ItemCellRenderer(),
|
NAME("Name", "Name", 180, -1, -1, SortState.ASC, new ItemCellRenderer(),
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ package forge.gui.toolbox.itemmanager.views;
|
|||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
import java.awt.Cursor;
|
import java.awt.Cursor;
|
||||||
|
import java.awt.Dimension;
|
||||||
import java.awt.KeyboardFocusManager;
|
import java.awt.KeyboardFocusManager;
|
||||||
import java.awt.Point;
|
import java.awt.Point;
|
||||||
import java.awt.Rectangle;
|
import java.awt.Rectangle;
|
||||||
@@ -53,8 +54,6 @@ import javax.swing.table.TableCellRenderer;
|
|||||||
import javax.swing.table.TableColumn;
|
import javax.swing.table.TableColumn;
|
||||||
import javax.swing.table.TableColumnModel;
|
import javax.swing.table.TableColumnModel;
|
||||||
|
|
||||||
import org.apache.commons.lang3.ArrayUtils;
|
|
||||||
|
|
||||||
import forge.gui.toolbox.FMouseAdapter;
|
import forge.gui.toolbox.FMouseAdapter;
|
||||||
import forge.gui.toolbox.FSkin;
|
import forge.gui.toolbox.FSkin;
|
||||||
import forge.gui.toolbox.FSkin.SkinnedTable;
|
import forge.gui.toolbox.FSkin.SkinnedTable;
|
||||||
@@ -75,6 +74,8 @@ import forge.util.ItemPoolSorter;
|
|||||||
*/
|
*/
|
||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
public final class ItemListView<T extends InventoryItem> extends ItemView<T> {
|
public final class ItemListView<T extends InventoryItem> extends ItemView<T> {
|
||||||
|
private static final int ROW_HEIGHT = 20;
|
||||||
|
|
||||||
private final ItemTable table = new ItemTable();
|
private final ItemTable table = new ItemTable();
|
||||||
private final ItemTableModel tableModel;
|
private final ItemTableModel tableModel;
|
||||||
|
|
||||||
@@ -127,8 +128,7 @@ public final class ItemListView<T extends InventoryItem> extends ItemView<T> {
|
|||||||
|
|
||||||
this.table.setFont(FSkin.getFont(12));
|
this.table.setFont(FSkin.getFont(12));
|
||||||
this.table.setBorder((Border)null);
|
this.table.setBorder((Border)null);
|
||||||
this.table.getTableHeader().setBorder(null);
|
this.table.setRowHeight(ROW_HEIGHT);
|
||||||
this.table.setRowHeight(20);
|
|
||||||
this.table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
|
this.table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
|
||||||
|
|
||||||
// prevent tables from intercepting tab focus traversals
|
// prevent tables from intercepting tab focus traversals
|
||||||
@@ -160,14 +160,20 @@ public final class ItemListView<T extends InventoryItem> extends ItemView<T> {
|
|||||||
if (col.isVisible()) { colmodel.addColumn(col); }
|
if (col.isVisible()) { colmodel.addColumn(col); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//hide table header if only showing single string column
|
||||||
|
if (cols.size() == 1 && cols.containsKey(ColumnDef.STRING)) {
|
||||||
|
this.table.getTableHeader().setPreferredSize(new Dimension(0, 0));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.table.getTableHeader().setPreferredSize(new Dimension(0, ROW_HEIGHT));
|
||||||
|
}
|
||||||
|
|
||||||
this.tableModel.addListeners();
|
this.tableModel.addListeners();
|
||||||
this.table.setModel(this.tableModel);
|
this.table.setModel(this.tableModel);
|
||||||
this.table.setColumnModel(colmodel);
|
this.table.setColumnModel(colmodel);
|
||||||
|
|
||||||
this.tableModel.setup();
|
this.tableModel.setup();
|
||||||
this.refresh(selectedItemsBefore, 0, false);
|
this.refresh(selectedItemsBefore, 0);
|
||||||
|
|
||||||
this.table.getTableHeader().setBackground(new Color(200, 200, 200));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public JTable getTable() {
|
public JTable getTable() {
|
||||||
@@ -292,6 +298,8 @@ public final class ItemListView<T extends InventoryItem> extends ItemView<T> {
|
|||||||
return tableColumn.getLongName();
|
return tableColumn.getLongName();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
header.setBorder(null);
|
||||||
|
header.setBackground(new Color(200, 200, 200));
|
||||||
((DefaultTableCellRenderer)header.getDefaultRenderer()).setHorizontalAlignment(SwingConstants.LEFT);
|
((DefaultTableCellRenderer)header.getDefaultRenderer()).setHorizontalAlignment(SwingConstants.LEFT);
|
||||||
return header;
|
return header;
|
||||||
}
|
}
|
||||||
@@ -412,22 +420,22 @@ public final class ItemListView<T extends InventoryItem> extends ItemView<T> {
|
|||||||
|
|
||||||
public void setup() {
|
public void setup() {
|
||||||
final Enumeration<TableColumn> e = table.getColumnModel().getColumns();
|
final Enumeration<TableColumn> e = table.getColumnModel().getColumns();
|
||||||
final TableColumn[] sortcols = new TableColumn[table.getColumnCount()];
|
final ItemColumn[] sortcols = new ItemColumn[table.getColumnCount()];
|
||||||
|
|
||||||
// Assemble priority sort.
|
// Assemble priority sort.
|
||||||
while (e.hasMoreElements()) {
|
while (e.hasMoreElements()) {
|
||||||
final ItemColumn col = (ItemColumn) e.nextElement();
|
final ItemColumn col = (ItemColumn) e.nextElement();
|
||||||
if (col.getSortPriority() > 0 && col.getSortPriority() < sortcols.length) {
|
if (col.getSortPriority() > 0 && col.getSortPriority() <= sortcols.length) {
|
||||||
sortcols[col.getSortPriority()] = col;
|
sortcols[col.getSortPriority() - 1] = col;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cascadeManager.reset();
|
cascadeManager.reset();
|
||||||
|
|
||||||
ArrayUtils.reverse(sortcols);
|
for (int i = sortcols.length - 1; i >= 0; i--) {
|
||||||
for (int i = 1; i < sortcols.length; i++) {
|
ItemColumn col = sortcols[i];
|
||||||
if (sortcols[i] != null) {
|
if (col != null) {
|
||||||
cascadeManager.add((ItemColumn) sortcols[i], true);
|
cascadeManager.add(col, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -499,14 +507,12 @@ public final class ItemListView<T extends InventoryItem> extends ItemView<T> {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//backup selected items to restore
|
|
||||||
final Iterable<T> selectedItemsBefore = getSelectedItems();
|
|
||||||
|
|
||||||
// This will invert if needed
|
// This will invert if needed
|
||||||
ItemTableModel.this.cascadeManager.add((ItemColumn) table.getColumnModel().getColumn(columnModelIndex), false);
|
ItemTableModel.this.cascadeManager.add((ItemColumn) table.getColumnModel().getColumn(columnModelIndex), false);
|
||||||
refresh(selectedItemsBefore, 0, true);
|
ItemTableModel.this.refreshSort();
|
||||||
table.tableChanged(new TableModelEvent(ItemTableModel.this));
|
table.tableChanged(new TableModelEvent(ItemTableModel.this));
|
||||||
table.repaint();
|
table.repaint();
|
||||||
|
ItemListView.this.setSelectedIndex(0);
|
||||||
SItemManagerIO.savePreferences(getItemManager());
|
SItemManagerIO.savePreferences(getItemManager());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -59,20 +59,9 @@ public abstract class ItemView<T extends InventoryItem> {
|
|||||||
return this.isIncrementalSearchActive;
|
return this.isIncrementalSearchActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void refresh(final Iterable<T> itemsToSelect, final int backupIndexToSelect, final boolean delaySelection) {
|
public void refresh(final Iterable<T> itemsToSelect, final int backupIndexToSelect) {
|
||||||
onRefresh();
|
onRefresh();
|
||||||
|
fixSelection(itemsToSelect, backupIndexToSelect);
|
||||||
if (delaySelection) {
|
|
||||||
SwingUtilities.invokeLater(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
fixSelection(itemsToSelect, backupIndexToSelect);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
fixSelection(itemsToSelect, backupIndexToSelect);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
protected abstract void onRefresh();
|
protected abstract void onRefresh();
|
||||||
private void fixSelection(final Iterable<T> itemsToSelect, final int backupIndexToSelect) {
|
private void fixSelection(final Iterable<T> itemsToSelect, final int backupIndexToSelect) {
|
||||||
|
|||||||
@@ -46,6 +46,12 @@ public final class SColumnUtil {
|
|||||||
return columns;
|
return columns;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Map<ColumnDef, ItemColumn> getStringColumn() {
|
||||||
|
Map<ColumnDef, ItemColumn> columns = getColumns(ColumnDef.STRING);
|
||||||
|
columns.get(ColumnDef.STRING).setSortPriority(1);
|
||||||
|
return columns;
|
||||||
|
}
|
||||||
|
|
||||||
public static Map<ColumnDef, ItemColumn> getCatalogDefaultColumns() {
|
public static Map<ColumnDef, ItemColumn> getCatalogDefaultColumns() {
|
||||||
Map<ColumnDef, ItemColumn> columns = getColumns(
|
Map<ColumnDef, ItemColumn> columns = getColumns(
|
||||||
ColumnDef.FAVORITE,
|
ColumnDef.FAVORITE,
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ import forge.util.ItemPool;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class QuestRewardCardChooser extends QuestRewardCard implements InventoryItem {
|
public class QuestRewardCardChooser extends QuestRewardCard implements InventoryItem {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Possible types for this object.
|
* Possible types for this object.
|
||||||
*/
|
*/
|
||||||
@@ -61,6 +60,16 @@ public class QuestRewardCardChooser extends QuestRewardCard implements Inventory
|
|||||||
return description;
|
return description;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Comparable<?> getCompareValue() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The item type.
|
* The item type.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ import forge.util.ItemPool;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class QuestRewardCardDuplicate implements IQuestRewardCard {
|
public class QuestRewardCardDuplicate implements IQuestRewardCard {
|
||||||
|
|
||||||
private final String description;
|
private final String description;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -45,6 +44,16 @@ public class QuestRewardCardDuplicate implements IQuestRewardCard {
|
|||||||
return "duplicate card";
|
return "duplicate card";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Comparable<?> getCompareValue() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Produces a list of options to choose from, in this case,
|
* Produces a list of options to choose from, in this case,
|
||||||
* the player's current cards.
|
* the player's current cards.
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ import forge.item.PaperCard;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class QuestRewardCardFiltered extends QuestRewardCard implements IQuestRewardCard {
|
public class QuestRewardCardFiltered extends QuestRewardCard implements IQuestRewardCard {
|
||||||
|
|
||||||
private final String description;
|
private final String description;
|
||||||
private final Predicate<PaperCard> predicates;
|
private final Predicate<PaperCard> predicates;
|
||||||
|
|
||||||
@@ -39,6 +38,15 @@ public class QuestRewardCardFiltered extends QuestRewardCard implements IQuestRe
|
|||||||
return description;
|
return description;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Comparable<?> getCompareValue() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The item type.
|
* The item type.
|
||||||
|
|||||||
Reference in New Issue
Block a user