mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 02:08:00 +00:00
Moving hard-coded text to res files
This commit is contained in:
@@ -31,12 +31,170 @@ import forge.itemmanager.ItemColumnConfig.SortState;
|
||||
import forge.limited.DraftRankCache;
|
||||
import forge.model.FModel;
|
||||
import forge.util.Localizer;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
public enum ColumnDef {
|
||||
/**The column containing the inventory item name.*/
|
||||
STRING("", "", 0, false, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return from.getKey() instanceof Comparable<?> ? (Comparable<?>)from.getKey() : from.getKey().getName();
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return from.getKey().toString();
|
||||
}
|
||||
}),
|
||||
/**The name column.*/
|
||||
NAME("lblName", "lblName", 180, false, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toSortableName(from.getKey().getName());
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return from.getKey().getName();
|
||||
}
|
||||
}),
|
||||
|
||||
/**The column for sorting cards in collector order.*/
|
||||
COLLECTOR_ORDER("lblCN", "ttCN", 20, false, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toCollectorPrefix(from.getKey());
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return "";
|
||||
}
|
||||
}),
|
||||
/**The type column.*/
|
||||
TYPE("lblType", "ttType", 100, false, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toType(from.getKey());
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toType(from.getKey());
|
||||
}
|
||||
}),
|
||||
/**The mana cost column.*/
|
||||
COST("lblCost", "ttCost", 70, true, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toManaCost(from.getKey());
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toCardRules(from.getKey());
|
||||
}
|
||||
}),
|
||||
/**The color column.*/
|
||||
COLOR("lblColor", "ttColor", 46, true, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toColor(from.getKey());
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toColor(from.getKey());
|
||||
}
|
||||
}),
|
||||
/**The power column.*/
|
||||
POWER("lblPower", "ttPower", 20, true, SortState.DESC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toPower(from.getKey());
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toPower(from.getKey());
|
||||
}
|
||||
}),
|
||||
/**The toughness column.*/
|
||||
TOUGHNESS("lblToughness", "ttToughness", 20, true, SortState.DESC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toToughness(from.getKey());
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toToughness(from.getKey());
|
||||
}
|
||||
}),
|
||||
/**The converted mana cost column.*/
|
||||
CMC("lblCMC", "ttCMC", 20, true, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toCMC(from.getKey());
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toCMC(from.getKey());
|
||||
}
|
||||
}),
|
||||
/**The rarity column.*/
|
||||
RARITY("lblRarity", "lblRarity", 20, true, SortState.DESC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toRarity(from.getKey());
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toRarity(from.getKey());
|
||||
}
|
||||
}),
|
||||
/**The set code column.*/
|
||||
SET("lblSet", "lblSet", 38, true, SortState.DESC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
InventoryItem i = from.getKey();
|
||||
return i instanceof InventoryItemFromSet ? FModel.getMagicDb().getEditions()
|
||||
.get(((InventoryItemFromSet) i).getEdition()) : CardEdition.UNKNOWN;
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
InventoryItem i = from.getKey();
|
||||
return i instanceof InventoryItemFromSet ? ((InventoryItemFromSet) i).getEdition() : "n/a";
|
||||
}
|
||||
}),
|
||||
/**The AI compatibility flag column*/
|
||||
AI("lblAI", "lblAIStatus", 30, true, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
@@ -58,213 +216,62 @@ public enum ColumnDef {
|
||||
return ai.getRemAIDecks() ? (ai.getRemRandomDecks() ? "AI ?" : "AI")
|
||||
: (ai.getRemRandomDecks() ? "?" : "");
|
||||
}
|
||||
})/**The AI compatibility flag column*/
|
||||
,
|
||||
CMC("lblCMC", "ttCMC", 20, true, SortState.ASC,
|
||||
}),
|
||||
/**The Draft ranking column.*/
|
||||
RANKING("lblRanking", "lblDraftRanking", 50, true, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toCMC(from.getKey());
|
||||
return toRanking(from.getKey(), false);
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toCMC(from.getKey());
|
||||
return toRanking(from.getKey(), true);
|
||||
}
|
||||
})/**The converted mana cost column.*/
|
||||
,
|
||||
|
||||
COLLECTOR_ORDER("lblCN", "ttCN", 20, false, SortState.ASC,
|
||||
}),
|
||||
/**The quantity column.*/
|
||||
QUANTITY("lblQty", "lblQuantity", 25, true, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toCollectorPrefix(from.getKey());
|
||||
return from.getValue();
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return "";
|
||||
return from.getValue();
|
||||
}
|
||||
})/**The column for sorting cards in collector order.*/
|
||||
,
|
||||
COLOR("lblColor", "ttColor", 46, true, SortState.ASC,
|
||||
}),
|
||||
/**The quantity in deck column.*/
|
||||
DECK_QUANTITY("lblQuantity", "lblQuantity", 50, true, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toColor(from.getKey());
|
||||
return from.getValue();
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toColor(from.getKey());
|
||||
return from.getValue();
|
||||
}
|
||||
})/**The color column.*/
|
||||
,
|
||||
COST("lblCost", "ttCost", 70, true, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toManaCost(from.getKey());
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toCardRules(from.getKey());
|
||||
}
|
||||
})/**The mana cost column.*/
|
||||
,
|
||||
}),
|
||||
/**The new inventory flag column.*/
|
||||
NEW("lblNew", "lblNew", 30, true, SortState.DESC,
|
||||
null, null), //functions will be set later
|
||||
/**The price column.*/
|
||||
PRICE("lblPrice", "ttPrice", 35, true, SortState.DESC,
|
||||
null, null),
|
||||
/**The quantity owned column.*/
|
||||
OWNED("lblOwned", "lblOwned", 20, true, SortState.ASC,
|
||||
null, null),
|
||||
/**The deck name column.*/
|
||||
DECKS("lblDecks", "lblDecks", 20, true, SortState.ASC,
|
||||
null, null)/**The deck name column.*/
|
||||
,
|
||||
DECK_ACTIONS("", "lblDeleteEdit", 40, true, SortState.DESC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return 0;
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toDeck(from.getKey());
|
||||
}
|
||||
})/**The edit/delete deck column.*/
|
||||
,
|
||||
DECK_COLOR("lblColor", "lblColor", 70, true, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toDeckColor(from.getKey());
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toDeckColor(from.getKey());
|
||||
}
|
||||
})/**The deck color column.*/
|
||||
,
|
||||
DECK_EDITION("lblSet", "lblSetEdition", 38, true, SortState.DESC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toDeck(from.getKey()).getEdition();
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toDeck(from.getKey()).getEdition().getCode();
|
||||
}
|
||||
})/**The deck edition column, a mystery to us all.*/
|
||||
,
|
||||
DECK_FAVORITE("", "ttFavorite", 18, true, SortState.DESC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
DeckProxy deck = toDeck(from.getKey());
|
||||
if (deck == null) {
|
||||
return -1;
|
||||
}
|
||||
return DeckPreferences.getPrefs(deck).getStarCount();
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toDeck(from.getKey());
|
||||
}
|
||||
})/**The favorite deck flag column.*/
|
||||
,
|
||||
DECK_FOLDER("lblFolder", "lblFolder", 80, false, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toDeckFolder(from.getKey());
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toDeckFolder(from.getKey());
|
||||
}
|
||||
})/**The deck folder column.*/
|
||||
,
|
||||
DECK_FORMAT("lblFormat", "ttFormats", 60, false, SortState.DESC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
DeckProxy deck = toDeck(from.getKey());
|
||||
if (deck == null) {
|
||||
return -1;
|
||||
}
|
||||
Iterable<GameFormat> all = deck.getExhaustiveFormats();
|
||||
int acc = 0;
|
||||
for (GameFormat gf : all) {
|
||||
int ix = gf.getIndex();
|
||||
if (ix < 30 && ix > 0)
|
||||
acc |= 0x40000000 >> (ix - 1);
|
||||
}
|
||||
return acc;
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
DeckProxy deck = toDeck(from.getKey());
|
||||
if (deck == null) {
|
||||
return null;
|
||||
}
|
||||
return deck.getFormatsString();
|
||||
}
|
||||
})/**The deck format column.*/
|
||||
,
|
||||
DECK_MAIN("lblMain", "ttMain", 30, true, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toDeck(from.getKey()).getMainSize();
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toDeck(from.getKey()).getMainSize();
|
||||
}
|
||||
})/**The main library size column.*/
|
||||
,
|
||||
DECK_QUANTITY("lblQty", "lblQuantity", 50, true, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return from.getValue();
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return from.getValue();
|
||||
}
|
||||
})/**The quantity in deck column.*/
|
||||
,
|
||||
DECK_SIDE("lblSide", "lblSideboard", 30, true, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toDeck(from.getKey()).getSideSize();
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toDeck(from.getKey()).getSideSize();
|
||||
}
|
||||
})/**The sideboard size column.*/
|
||||
,
|
||||
null, null),
|
||||
/**The favorite flag column.*/
|
||||
FAVORITE("", "ttFavorite", 18, true, SortState.DESC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
@@ -281,151 +288,142 @@ public enum ColumnDef {
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toCard(from.getKey());
|
||||
}
|
||||
})/**The favorite flag column.*/
|
||||
,
|
||||
NAME("lblName", "lblName", 180, false, SortState.ASC,
|
||||
}),
|
||||
/**The favorite deck flag column.*/
|
||||
DECK_FAVORITE("", "ttFavorite", 18, true, SortState.DESC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toSortableName(from.getKey().getName());
|
||||
DeckProxy deck = toDeck(from.getKey());
|
||||
if (deck == null) {
|
||||
return -1;
|
||||
}
|
||||
return DeckPreferences.getPrefs(deck).getStarCount();
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return from.getKey().getName();
|
||||
return toDeck(from.getKey());
|
||||
}
|
||||
})/**The name column.*/
|
||||
,
|
||||
NEW("lblNew", "lblNew", 30, true, SortState.DESC,
|
||||
null, null)/**The new inventory flag column.*/
|
||||
, //functions will be set later
|
||||
OWNED("lblOwned", "lblOwned", 20, true, SortState.ASC,
|
||||
null, null)/**The quantity owned column.*/
|
||||
,
|
||||
POWER("lblPower", "ttPower", 20, true, SortState.DESC,
|
||||
}),
|
||||
/**The edit/delete deck column.*/
|
||||
DECK_ACTIONS("", "lblDeleteEdit", 40, true, SortState.DESC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toPower(from.getKey());
|
||||
return 0;
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toPower(from.getKey());
|
||||
return toDeck(from.getKey());
|
||||
}
|
||||
})/**The power column.*/
|
||||
,
|
||||
PRICE("lblPrice", "ttPrice", 35, true, SortState.DESC,
|
||||
null, null)/**The price column.*/
|
||||
,
|
||||
QUANTITY("lblQty", "lblQuantity", 25, true, SortState.ASC,
|
||||
}),
|
||||
/**The deck folder column.*/
|
||||
DECK_FOLDER("lblFolder", "lblFolder", 80, false, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return from.getValue();
|
||||
return toDeckFolder(from.getKey());
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return from.getValue();
|
||||
return toDeckFolder(from.getKey());
|
||||
}
|
||||
})/**The quantity column.*/
|
||||
,
|
||||
RANKING("lblRanking", "lblDraftRanking", 50, true, SortState.ASC,
|
||||
}),
|
||||
/**The deck color column.*/
|
||||
DECK_COLOR("lblColor", "ttColor", 70, true, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toRanking(from.getKey(), false);
|
||||
return toDeckColor(from.getKey());
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toRanking(from.getKey(), true);
|
||||
return toDeckColor(from.getKey());
|
||||
}
|
||||
})/**The Draft ranking column.*/
|
||||
,
|
||||
RARITY("lblRarity", "lblRarity", 20, true, SortState.DESC,
|
||||
}),
|
||||
/**The deck format column.*/
|
||||
DECK_FORMAT("lblFormat", "ttFormats", 60, false, SortState.DESC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toRarity(from.getKey());
|
||||
DeckProxy deck = toDeck(from.getKey());
|
||||
if (deck == null) {
|
||||
return -1;
|
||||
}
|
||||
Iterable<GameFormat> all = deck.getExhaustiveFormats();
|
||||
int acc = 0;
|
||||
for(GameFormat gf : all) {
|
||||
int ix = gf.getIndex();
|
||||
if( ix < 30 && ix > 0)
|
||||
acc |= 0x40000000 >> (ix - 1);
|
||||
}
|
||||
return acc;
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toRarity(from.getKey());
|
||||
DeckProxy deck = toDeck(from.getKey());
|
||||
if (deck == null) {
|
||||
return null;
|
||||
}
|
||||
})/**The rarity column.*/
|
||||
,
|
||||
SET("lblSet", "lblSet", 38, true, SortState.DESC,
|
||||
return deck.getFormatsString();
|
||||
}
|
||||
}),
|
||||
/**The deck edition column, a mystery to us all.*/
|
||||
DECK_EDITION("lblSet", "lblSetEdition", 38, true, SortState.DESC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
InventoryItem i = from.getKey();
|
||||
return i instanceof InventoryItemFromSet ? FModel.getMagicDb().getEditions()
|
||||
.get(((InventoryItemFromSet) i).getEdition()) : CardEdition.UNKNOWN;
|
||||
return toDeck(from.getKey()).getEdition();
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
InventoryItem i = from.getKey();
|
||||
return i instanceof InventoryItemFromSet ? ((InventoryItemFromSet) i).getEdition() : "n/a";
|
||||
return toDeck(from.getKey()).getEdition().getCode();
|
||||
}
|
||||
})/**The set code column.*/
|
||||
,
|
||||
STRING("", "", 0, false, SortState.ASC,
|
||||
}),
|
||||
/**The main library size column.*/
|
||||
DECK_MAIN("lblMain", "ttMain", 30, true, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return from.getKey() instanceof Comparable<?> ? (Comparable<?>) from.getKey() : from.getKey().getName();
|
||||
return toDeck(from.getKey()).getMainSize();
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return from.getKey().toString();
|
||||
return toDeck(from.getKey()).getMainSize();
|
||||
}
|
||||
})/**The column containing the inventory item name.*/
|
||||
,
|
||||
TOUGHNESS("lblToughness", "ttToughness", 20, true, SortState.DESC,
|
||||
}),
|
||||
/**The sideboard size column.*/
|
||||
DECK_SIDE("lblSide", "lblSideboard", 30, true, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toToughness(from.getKey());
|
||||
return toDeck(from.getKey()).getSideSize();
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toToughness(from.getKey());
|
||||
return toDeck(from.getKey()).getSideSize();
|
||||
}
|
||||
})/**The toughness column.*/
|
||||
,
|
||||
TYPE("lblType", "ttType", 100, false, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toType(from.getKey());
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toType(from.getKey());
|
||||
}
|
||||
})/**The type column.*/
|
||||
;
|
||||
});
|
||||
|
||||
ColumnDef(String shortName0, String longName0, int preferredWidth0, boolean isWidthFixed0, SortState sortState0,
|
||||
Function<Entry<InventoryItem, Integer>, Comparable<?>> fnSort0,
|
||||
Function<Entry<? extends InventoryItem, Integer>, Object> fnDisplay0) {
|
||||
|
||||
final Localizer localizer = Localizer.getInstance();
|
||||
|
||||
if (shortName0 != null && !shortName0.isEmpty()) { this.shortName = localizer.getMessage(shortName0);} else {this.shortName = shortName0;}
|
||||
@@ -449,8 +447,7 @@ public enum ColumnDef {
|
||||
public String toString() {
|
||||
return this.longName;
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
*Converts a card name to a sortable name.
|
||||
* Trim leading quotes, then move article last, then replace characters.
|
||||
* Because An-Havva Constable.
|
||||
@@ -462,7 +459,7 @@ public enum ColumnDef {
|
||||
*/
|
||||
private static String toSortableName(String printedName) {
|
||||
if (printedName.startsWith("\"")) printedName = printedName.substring(1);
|
||||
return moveArticleToEnd(printedName).toLowerCase().replaceAll("[^\\s'0-9a-z]", "");
|
||||
return moveArticleToEnd(printedName).toLowerCase().replaceAll("[^\\s'0-9a-z]","");
|
||||
}
|
||||
|
||||
|
||||
@@ -479,12 +476,12 @@ public enum ColumnDef {
|
||||
/**Detects whether a string begins with an article word
|
||||
@param str The name of the card.
|
||||
@return The sort-friendly name of the card. Example: "The Hive" becomes "Hive The".*/
|
||||
private static String moveArticleToEnd(String str) {
|
||||
private static String moveArticleToEnd(String str){
|
||||
String articleWord;
|
||||
for (int i = 0; i < ARTICLE_WORDS.length; i++) {
|
||||
for (int i = 0; i < ARTICLE_WORDS.length; i++){
|
||||
articleWord = ARTICLE_WORDS[i];
|
||||
if (str.startsWith(articleWord + " ")) {
|
||||
str = str.substring(articleWord.length() + 1) + " " + articleWord;
|
||||
if (str.startsWith(articleWord + " ")){
|
||||
str = str.substring(articleWord.length()+1) + " " + articleWord;
|
||||
return str;
|
||||
}
|
||||
}
|
||||
@@ -492,17 +489,15 @@ public enum ColumnDef {
|
||||
}
|
||||
|
||||
private static String toType(final InventoryItem i) {
|
||||
return i instanceof IPaperCard ? ((IPaperCard) i).getRules().getType().toString() : i.getItemType();
|
||||
return i instanceof IPaperCard ? ((IPaperCard)i).getRules().getType().toString() : i.getItemType();
|
||||
}
|
||||
|
||||
private static IPaperCard toCard(final InventoryItem i) {
|
||||
return i instanceof IPaperCard ? ((IPaperCard) i) : null;
|
||||
}
|
||||
|
||||
private static ManaCost toManaCost(final InventoryItem i) {
|
||||
return i instanceof IPaperCard ? ((IPaperCard) i).getRules().getManaCost() : ManaCost.NO_COST;
|
||||
}
|
||||
|
||||
private static CardRules toCardRules(final InventoryItem i) {
|
||||
return i instanceof IPaperCard ? ((IPaperCard) i).getRules() : null;
|
||||
}
|
||||
@@ -516,7 +511,7 @@ public enum ColumnDef {
|
||||
if (i instanceof PaperCard) {
|
||||
result = ((IPaperCard) i).getRules().getIntPower();
|
||||
if (result == Integer.MAX_VALUE) {
|
||||
if (((IPaperCard) i).getRules().getType().isPlaneswalker()) {
|
||||
if (((IPaperCard)i).getRules().getType().isPlaneswalker()) {
|
||||
result = ((IPaperCard) i).getRules().getInitialLoyalty();
|
||||
}
|
||||
}
|
||||
@@ -537,7 +532,7 @@ public enum ColumnDef {
|
||||
}
|
||||
|
||||
private static Double toRanking(final InventoryItem i, boolean truncate) {
|
||||
if (i instanceof IPaperCard) {
|
||||
if (i instanceof IPaperCard){
|
||||
IPaperCard cp = (IPaperCard) i;
|
||||
Double ranking = DraftRankCache.getRanking(cp.getName(), cp.getEdition());
|
||||
if (ranking != null) {
|
||||
@@ -553,11 +548,9 @@ public enum ColumnDef {
|
||||
private static DeckProxy toDeck(final InventoryItem i) {
|
||||
return i instanceof DeckProxy ? ((DeckProxy) i) : null;
|
||||
}
|
||||
|
||||
private static ColorSet toDeckColor(final InventoryItem i) {
|
||||
return i instanceof DeckProxy ? ((DeckProxy) i).getColor() : null;
|
||||
}
|
||||
|
||||
private static String toDeckFolder(final InventoryItem i) {
|
||||
return i instanceof DeckProxy ? ((DeckProxy) i).getPath() + "/" : null;
|
||||
}
|
||||
@@ -588,7 +581,7 @@ public enum ColumnDef {
|
||||
@param i A paper card.
|
||||
@return Part of a sortable numeric string.*/
|
||||
private static String toArtifactsWithColorlessCostsLast(final InventoryItem i) {
|
||||
ManaCost manaCost = ((IPaperCard) i).getRules().getManaCost();
|
||||
forge.card.mana.ManaCost manaCost = ((IPaperCard) i).getRules().getManaCost();
|
||||
|
||||
return !(((IPaperCard) i).getRules().getType().isArtifact() && (toColor(i).isColorless() ||
|
||||
//If it isn't colorless, see if it can be paid with only white, only blue, only black.
|
||||
@@ -596,7 +589,7 @@ public enum ColumnDef {
|
||||
manaCost.canBePaidWithAvaliable(MagicColor.WHITE) &&
|
||||
manaCost.canBePaidWithAvaliable(MagicColor.BLUE) &&
|
||||
manaCost.canBePaidWithAvaliable(MagicColor.BLACK)))
|
||||
? "0" + toSplitLast(i) : "1";
|
||||
? "0" + toSplitLast(i): "1";
|
||||
}
|
||||
|
||||
/**Returns 1 for split cards or 0 for other cards; continues sorting.
|
||||
@@ -629,14 +622,14 @@ public enum ColumnDef {
|
||||
@return Part of a sortable numeric string.*/
|
||||
private static String toMonocolorFirst(final InventoryItem i) {
|
||||
return toColor(i).isMonoColor() ?
|
||||
"0" + toWubrgOrder(i) : "1" + toGoldFirst(i);
|
||||
"0" + toWubrgOrder(i): "1" + toGoldFirst(i);
|
||||
}
|
||||
|
||||
/**Returns 0 for gold cards and continues sorting, 1 otherwise.
|
||||
@param i A paper card.
|
||||
@return Part of a sortable numeric string.*/
|
||||
private static String toGoldFirst(final InventoryItem i) {
|
||||
ManaCost manaCost = ((IPaperCard) i).getRules().getManaCost();
|
||||
forge.card.mana.ManaCost manaCost = ((IPaperCard) i).getRules().getManaCost();
|
||||
|
||||
return !(manaCost.canBePaidWithAvaliable(MagicColor.WHITE) | manaCost.canBePaidWithAvaliable(MagicColor.BLUE) |
|
||||
manaCost.canBePaidWithAvaliable(MagicColor.BLACK) | manaCost.canBePaidWithAvaliable(MagicColor.RED) |
|
||||
@@ -652,8 +645,8 @@ public enum ColumnDef {
|
||||
//This method serves as an entry point only, separating the two card parts for convenience.
|
||||
private static String toSplitCardSort(final InventoryItem i) {
|
||||
CardRules rules = ((IPaperCard) i).getRules();
|
||||
ICardFace mainPart = rules.getMainPart();
|
||||
ICardFace otherPart = rules.getOtherPart();
|
||||
forge.card.ICardFace mainPart = rules.getMainPart();
|
||||
forge.card.ICardFace otherPart = rules.getOtherPart();
|
||||
return toSplitSort(mainPart, otherPart);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user