mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38:00 +00:00
translate advanced search
This commit is contained in:
@@ -33,23 +33,25 @@ import forge.planarconquest.ConquestRegion;
|
|||||||
import forge.quest.QuestWorld;
|
import forge.quest.QuestWorld;
|
||||||
import forge.util.gui.SGuiChoose;
|
import forge.util.gui.SGuiChoose;
|
||||||
import forge.util.gui.SOptionPane;
|
import forge.util.gui.SOptionPane;
|
||||||
|
import forge.util.Localizer;
|
||||||
|
import forge.util.CardTranslation;
|
||||||
|
|
||||||
public class AdvancedSearch {
|
public class AdvancedSearch {
|
||||||
public enum FilterOption {
|
public enum FilterOption {
|
||||||
NONE("(none)", null, null, null),
|
NONE("(none)", null, null, null),
|
||||||
CARD_NAME("Name", PaperCard.class, FilterOperator.STRING_OPS, new StringEvaluator<PaperCard>() {
|
CARD_NAME("lblName", PaperCard.class, FilterOperator.STRING_OPS, new StringEvaluator<PaperCard>() {
|
||||||
@Override
|
@Override
|
||||||
protected String getItemValue(PaperCard input) {
|
protected String getItemValue(PaperCard input) {
|
||||||
return input.getName();
|
return input.getName();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CARD_RULES_TEXT("Rules Text", PaperCard.class, FilterOperator.STRING_OPS, new StringEvaluator<PaperCard>() {
|
CARD_RULES_TEXT("lblRulesText", PaperCard.class, FilterOperator.STRING_OPS, new StringEvaluator<PaperCard>() {
|
||||||
@Override
|
@Override
|
||||||
protected String getItemValue(PaperCard input) {
|
protected String getItemValue(PaperCard input) {
|
||||||
return input.getRules().getOracleText();
|
return input.getRules().getOracleText();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CARD_KEYWORDS("Keywords", PaperCard.class, FilterOperator.COLLECTION_OPS, new CustomListEvaluator<PaperCard, Keyword>(Keyword.getAllKeywords()) {
|
CARD_KEYWORDS("lblKeywords", PaperCard.class, FilterOperator.COLLECTION_OPS, new CustomListEvaluator<PaperCard, Keyword>(Keyword.getAllKeywords()) {
|
||||||
@Override
|
@Override
|
||||||
protected Keyword getItemValue(PaperCard input) {
|
protected Keyword getItemValue(PaperCard input) {
|
||||||
throw new RuntimeException("getItemValues should be called instead");
|
throw new RuntimeException("getItemValues should be called instead");
|
||||||
@@ -59,13 +61,13 @@ public class AdvancedSearch {
|
|||||||
return Keyword.getKeywordSet(input);
|
return Keyword.getKeywordSet(input);
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CARD_SET("Set", PaperCard.class, FilterOperator.SINGLE_LIST_OPS, new CustomListEvaluator<PaperCard, CardEdition>(FModel.getMagicDb().getSortedEditions(), CardEdition.FN_GET_CODE) {
|
CARD_SET("lblSet", PaperCard.class, FilterOperator.SINGLE_LIST_OPS, new CustomListEvaluator<PaperCard, CardEdition>(FModel.getMagicDb().getSortedEditions(), CardEdition.FN_GET_CODE) {
|
||||||
@Override
|
@Override
|
||||||
protected CardEdition getItemValue(PaperCard input) {
|
protected CardEdition getItemValue(PaperCard input) {
|
||||||
return FModel.getMagicDb().getEditions().get(input.getEdition());
|
return FModel.getMagicDb().getEditions().get(input.getEdition());
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CARD_FORMAT("Format", PaperCard.class, FilterOperator.MULTI_LIST_OPS, new CustomListEvaluator<PaperCard, GameFormat>((List<GameFormat>)FModel.getFormats().getFilterList()) {
|
CARD_FORMAT("lblFormat", PaperCard.class, FilterOperator.MULTI_LIST_OPS, new CustomListEvaluator<PaperCard, GameFormat>((List<GameFormat>)FModel.getFormats().getFilterList()) {
|
||||||
@Override
|
@Override
|
||||||
protected GameFormat getItemValue(PaperCard input) {
|
protected GameFormat getItemValue(PaperCard input) {
|
||||||
throw new RuntimeException("getItemValues should be called instead");
|
throw new RuntimeException("getItemValues should be called instead");
|
||||||
@@ -75,7 +77,7 @@ public class AdvancedSearch {
|
|||||||
return FModel.getFormats().getAllFormatsOfCard(input);
|
return FModel.getFormats().getAllFormatsOfCard(input);
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CARD_PLANE("Plane", PaperCard.class, FilterOperator.MULTI_LIST_OPS, new CustomListEvaluator<PaperCard, ConquestPlane>(ImmutableList.copyOf(FModel.getPlanes())) {
|
CARD_PLANE("lblPlane", PaperCard.class, FilterOperator.MULTI_LIST_OPS, new CustomListEvaluator<PaperCard, ConquestPlane>(ImmutableList.copyOf(FModel.getPlanes())) {
|
||||||
@Override
|
@Override
|
||||||
protected ConquestPlane getItemValue(PaperCard input) {
|
protected ConquestPlane getItemValue(PaperCard input) {
|
||||||
throw new RuntimeException("getItemValues should be called instead");
|
throw new RuntimeException("getItemValues should be called instead");
|
||||||
@@ -85,7 +87,7 @@ public class AdvancedSearch {
|
|||||||
return ConquestPlane.getAllPlanesOfCard(input);
|
return ConquestPlane.getAllPlanesOfCard(input);
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CARD_REGION("Region", PaperCard.class, FilterOperator.MULTI_LIST_OPS, new CustomListEvaluator<PaperCard, ConquestRegion>(ConquestRegion.getAllRegions()) {
|
CARD_REGION("lblRegion", PaperCard.class, FilterOperator.MULTI_LIST_OPS, new CustomListEvaluator<PaperCard, ConquestRegion>(ConquestRegion.getAllRegions()) {
|
||||||
@Override
|
@Override
|
||||||
protected ConquestRegion getItemValue(PaperCard input) {
|
protected ConquestRegion getItemValue(PaperCard input) {
|
||||||
throw new RuntimeException("getItemValues should be called instead");
|
throw new RuntimeException("getItemValues should be called instead");
|
||||||
@@ -95,7 +97,7 @@ public class AdvancedSearch {
|
|||||||
return ConquestRegion.getAllRegionsOfCard(input);
|
return ConquestRegion.getAllRegionsOfCard(input);
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CARD_QUEST_WORLD("Quest World", PaperCard.class, FilterOperator.MULTI_LIST_OPS, new CustomListEvaluator<PaperCard, QuestWorld>(ImmutableList.copyOf(FModel.getWorlds())) {
|
CARD_QUEST_WORLD("lblQuestWorld", PaperCard.class, FilterOperator.MULTI_LIST_OPS, new CustomListEvaluator<PaperCard, QuestWorld>(ImmutableList.copyOf(FModel.getWorlds())) {
|
||||||
@Override
|
@Override
|
||||||
protected QuestWorld getItemValue(PaperCard input) {
|
protected QuestWorld getItemValue(PaperCard input) {
|
||||||
throw new RuntimeException("getItemValues should be called instead");
|
throw new RuntimeException("getItemValues should be called instead");
|
||||||
@@ -105,7 +107,7 @@ public class AdvancedSearch {
|
|||||||
return QuestWorld.getAllQuestWorldsOfCard(input);
|
return QuestWorld.getAllQuestWorldsOfCard(input);
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CARD_COLOR("Color", PaperCard.class, FilterOperator.COMBINATION_OPS, new ColorEvaluator<PaperCard>() {
|
CARD_COLOR("lblColor", PaperCard.class, FilterOperator.COMBINATION_OPS, new ColorEvaluator<PaperCard>() {
|
||||||
@Override
|
@Override
|
||||||
protected MagicColor.Color getItemValue(PaperCard input) {
|
protected MagicColor.Color getItemValue(PaperCard input) {
|
||||||
throw new RuntimeException("getItemValues should be called instead");
|
throw new RuntimeException("getItemValues should be called instead");
|
||||||
@@ -115,7 +117,7 @@ public class AdvancedSearch {
|
|||||||
return input.getRules().getColor().toEnumSet();
|
return input.getRules().getColor().toEnumSet();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CARD_COLOR_IDENTITY("Color Identity", PaperCard.class, FilterOperator.COMBINATION_OPS, new ColorEvaluator<PaperCard>() {
|
CARD_COLOR_IDENTITY("lblColorIdentity", PaperCard.class, FilterOperator.COMBINATION_OPS, new ColorEvaluator<PaperCard>() {
|
||||||
@Override
|
@Override
|
||||||
protected MagicColor.Color getItemValue(PaperCard input) {
|
protected MagicColor.Color getItemValue(PaperCard input) {
|
||||||
throw new RuntimeException("getItemValues should be called instead");
|
throw new RuntimeException("getItemValues should be called instead");
|
||||||
@@ -125,13 +127,13 @@ public class AdvancedSearch {
|
|||||||
return input.getRules().getColorIdentity().toEnumSet();
|
return input.getRules().getColorIdentity().toEnumSet();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CARD_COLOR_COUNT("Color Count", PaperCard.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<PaperCard>(0, 5) {
|
CARD_COLOR_COUNT("lblColorCount", PaperCard.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<PaperCard>(0, 5) {
|
||||||
@Override
|
@Override
|
||||||
protected Integer getItemValue(PaperCard input) {
|
protected Integer getItemValue(PaperCard input) {
|
||||||
return input.getRules().getColor().countColors();
|
return input.getRules().getColor().countColors();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CARD_TYPE("Type", PaperCard.class, FilterOperator.COMBINATION_OPS, new CustomListEvaluator<PaperCard, String>(CardType.getCombinedSuperAndCoreTypes()) {
|
CARD_TYPE("lblType", PaperCard.class, FilterOperator.COMBINATION_OPS, new CustomListEvaluator<PaperCard, String>(CardType.getCombinedSuperAndCoreTypes()) {
|
||||||
@Override
|
@Override
|
||||||
protected String getItemValue(PaperCard input) {
|
protected String getItemValue(PaperCard input) {
|
||||||
throw new RuntimeException("getItemValues should be called instead");
|
throw new RuntimeException("getItemValues should be called instead");
|
||||||
@@ -149,7 +151,7 @@ public class AdvancedSearch {
|
|||||||
return types;
|
return types;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CARD_SUB_TYPE("Subtype", PaperCard.class, FilterOperator.COMBINATION_OPS, new CustomListEvaluator<PaperCard, String>(CardType.getSortedSubTypes()) {
|
CARD_SUB_TYPE("lblSubtype", PaperCard.class, FilterOperator.COMBINATION_OPS, new CustomListEvaluator<PaperCard, String>(CardType.getSortedSubTypes()) {
|
||||||
@Override
|
@Override
|
||||||
protected String getItemValue(PaperCard input) {
|
protected String getItemValue(PaperCard input) {
|
||||||
throw new RuntimeException("getItemValues should be called instead");
|
throw new RuntimeException("getItemValues should be called instead");
|
||||||
@@ -159,19 +161,19 @@ public class AdvancedSearch {
|
|||||||
return (Set<String>)input.getRules().getType().getSubtypes();
|
return (Set<String>)input.getRules().getType().getSubtypes();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CARD_CMC("CMC", PaperCard.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<PaperCard>(0, 20) {
|
CARD_CMC("lblCMC", PaperCard.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<PaperCard>(0, 20) {
|
||||||
@Override
|
@Override
|
||||||
protected Integer getItemValue(PaperCard input) {
|
protected Integer getItemValue(PaperCard input) {
|
||||||
return input.getRules().getManaCost().getCMC();
|
return input.getRules().getManaCost().getCMC();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CARD_GENERIC_COST("Generic Cost", PaperCard.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<PaperCard>(0, 20) {
|
CARD_GENERIC_COST("lblGenericCost", PaperCard.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<PaperCard>(0, 20) {
|
||||||
@Override
|
@Override
|
||||||
protected Integer getItemValue(PaperCard input) {
|
protected Integer getItemValue(PaperCard input) {
|
||||||
return input.getRules().getManaCost().getGenericCost();
|
return input.getRules().getManaCost().getGenericCost();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CARD_POWER("Power", PaperCard.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<PaperCard>(0, 20) {
|
CARD_POWER("lblPower", PaperCard.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<PaperCard>(0, 20) {
|
||||||
@Override
|
@Override
|
||||||
protected Integer getItemValue(PaperCard input) {
|
protected Integer getItemValue(PaperCard input) {
|
||||||
CardRules rules = input.getRules();
|
CardRules rules = input.getRules();
|
||||||
@@ -181,7 +183,7 @@ public class AdvancedSearch {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CARD_TOUGHNESS("Toughness", PaperCard.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<PaperCard>(0, 20) {
|
CARD_TOUGHNESS("lblToughness", PaperCard.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<PaperCard>(0, 20) {
|
||||||
@Override
|
@Override
|
||||||
protected Integer getItemValue(PaperCard input) {
|
protected Integer getItemValue(PaperCard input) {
|
||||||
CardRules rules = input.getRules();
|
CardRules rules = input.getRules();
|
||||||
@@ -191,19 +193,19 @@ public class AdvancedSearch {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CARD_MANA_COST("Mana Cost", PaperCard.class, FilterOperator.STRING_OPS, new StringEvaluator<PaperCard>() {
|
CARD_MANA_COST("lblManaCost", PaperCard.class, FilterOperator.STRING_OPS, new StringEvaluator<PaperCard>() {
|
||||||
@Override
|
@Override
|
||||||
protected String getItemValue(PaperCard input) {
|
protected String getItemValue(PaperCard input) {
|
||||||
return input.getRules().getManaCost().toString();
|
return input.getRules().getManaCost().toString();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CARD_RARITY("Rarity", PaperCard.class, FilterOperator.SINGLE_LIST_OPS, new CustomListEvaluator<PaperCard, CardRarity>(Arrays.asList(CardRarity.FILTER_OPTIONS), CardRarity.FN_GET_LONG_NAME, CardRarity.FN_GET_LONG_NAME) {
|
CARD_RARITY("lblRarity", PaperCard.class, FilterOperator.SINGLE_LIST_OPS, new CustomListEvaluator<PaperCard, CardRarity>(Arrays.asList(CardRarity.FILTER_OPTIONS), CardRarity.FN_GET_LONG_NAME, CardRarity.FN_GET_LONG_NAME) {
|
||||||
@Override
|
@Override
|
||||||
protected CardRarity getItemValue(PaperCard input) {
|
protected CardRarity getItemValue(PaperCard input) {
|
||||||
return input.getRarity();
|
return input.getRarity();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CARD_FIRST_PRINTING("First Printing", PaperCard.class, FilterOperator.BOOLEAN_OPS, new BooleanEvaluator<PaperCard>() {
|
CARD_FIRST_PRINTING("lblFirstPrinting", PaperCard.class, FilterOperator.BOOLEAN_OPS, new BooleanEvaluator<PaperCard>() {
|
||||||
@Override
|
@Override
|
||||||
protected Boolean getItemValue(PaperCard input) {
|
protected Boolean getItemValue(PaperCard input) {
|
||||||
List<PaperCard> cards = FModel.getMagicDb().getCommonCards().getAllCards(input.getName());
|
List<PaperCard> cards = FModel.getMagicDb().getCommonCards().getAllCards(input.getName());
|
||||||
@@ -213,25 +215,25 @@ public class AdvancedSearch {
|
|||||||
return cards.get(0) == input;
|
return cards.get(0) == input;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
DECK_NAME("Name", DeckProxy.class, FilterOperator.STRING_OPS, new StringEvaluator<DeckProxy>() {
|
DECK_NAME("lblName", DeckProxy.class, FilterOperator.STRING_OPS, new StringEvaluator<DeckProxy>() {
|
||||||
@Override
|
@Override
|
||||||
protected String getItemValue(DeckProxy input) {
|
protected String getItemValue(DeckProxy input) {
|
||||||
return input.getName();
|
return input.getName();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
DECK_FOLDER("Folder", DeckProxy.class, FilterOperator.STRING_OPS, new StringEvaluator<DeckProxy>() {
|
DECK_FOLDER("lblFolder", DeckProxy.class, FilterOperator.STRING_OPS, new StringEvaluator<DeckProxy>() {
|
||||||
@Override
|
@Override
|
||||||
protected String getItemValue(DeckProxy input) {
|
protected String getItemValue(DeckProxy input) {
|
||||||
return input.getPath();
|
return input.getPath();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
DECK_FAVORITE("Favorite", DeckProxy.class, FilterOperator.BOOLEAN_OPS, new BooleanEvaluator<DeckProxy>() {
|
DECK_FAVORITE("ttFavorite", DeckProxy.class, FilterOperator.BOOLEAN_OPS, new BooleanEvaluator<DeckProxy>() {
|
||||||
@Override
|
@Override
|
||||||
protected Boolean getItemValue(DeckProxy input) {
|
protected Boolean getItemValue(DeckProxy input) {
|
||||||
return input.isFavoriteDeck();
|
return input.isFavoriteDeck();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
DECK_FORMAT("Format", DeckProxy.class, FilterOperator.MULTI_LIST_OPS, new CustomListEvaluator<DeckProxy, GameFormat>((List<GameFormat>)FModel.getFormats().getFilterList()) {
|
DECK_FORMAT("lblFormat", DeckProxy.class, FilterOperator.MULTI_LIST_OPS, new CustomListEvaluator<DeckProxy, GameFormat>((List<GameFormat>)FModel.getFormats().getFilterList()) {
|
||||||
@Override
|
@Override
|
||||||
protected GameFormat getItemValue(DeckProxy input) {
|
protected GameFormat getItemValue(DeckProxy input) {
|
||||||
throw new RuntimeException("getItemValues should be called instead");
|
throw new RuntimeException("getItemValues should be called instead");
|
||||||
@@ -241,7 +243,7 @@ public class AdvancedSearch {
|
|||||||
return input.getExhaustiveFormats();
|
return input.getExhaustiveFormats();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
DECK_QUEST_WORLD("Quest World", DeckProxy.class, FilterOperator.MULTI_LIST_OPS, new CustomListEvaluator<DeckProxy, QuestWorld>(ImmutableList.copyOf(FModel.getWorlds())) {
|
DECK_QUEST_WORLD("lblQuestWorld", DeckProxy.class, FilterOperator.MULTI_LIST_OPS, new CustomListEvaluator<DeckProxy, QuestWorld>(ImmutableList.copyOf(FModel.getWorlds())) {
|
||||||
@Override
|
@Override
|
||||||
protected QuestWorld getItemValue(DeckProxy input) {
|
protected QuestWorld getItemValue(DeckProxy input) {
|
||||||
throw new RuntimeException("getItemValues should be called instead");
|
throw new RuntimeException("getItemValues should be called instead");
|
||||||
@@ -251,7 +253,7 @@ public class AdvancedSearch {
|
|||||||
return QuestWorld.getAllQuestWorldsOfDeck(input.getDeck());
|
return QuestWorld.getAllQuestWorldsOfDeck(input.getDeck());
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
DECK_COLOR("Color", DeckProxy.class, FilterOperator.COMBINATION_OPS, new ColorEvaluator<DeckProxy>() {
|
DECK_COLOR("lblColor", DeckProxy.class, FilterOperator.COMBINATION_OPS, new ColorEvaluator<DeckProxy>() {
|
||||||
@Override
|
@Override
|
||||||
protected MagicColor.Color getItemValue(DeckProxy input) {
|
protected MagicColor.Color getItemValue(DeckProxy input) {
|
||||||
throw new RuntimeException("getItemValues should be called instead");
|
throw new RuntimeException("getItemValues should be called instead");
|
||||||
@@ -261,7 +263,7 @@ public class AdvancedSearch {
|
|||||||
return input.getColor().toEnumSet();
|
return input.getColor().toEnumSet();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
DECK_COLOR_IDENTITY("Color Identity", DeckProxy.class, FilterOperator.COMBINATION_OPS, new ColorEvaluator<DeckProxy>() {
|
DECK_COLOR_IDENTITY("lblColorIdentity", DeckProxy.class, FilterOperator.COMBINATION_OPS, new ColorEvaluator<DeckProxy>() {
|
||||||
@Override
|
@Override
|
||||||
protected MagicColor.Color getItemValue(DeckProxy input) {
|
protected MagicColor.Color getItemValue(DeckProxy input) {
|
||||||
throw new RuntimeException("getItemValues should be called instead");
|
throw new RuntimeException("getItemValues should be called instead");
|
||||||
@@ -271,25 +273,25 @@ public class AdvancedSearch {
|
|||||||
return input.getColorIdentity().toEnumSet();
|
return input.getColorIdentity().toEnumSet();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
DECK_COLOR_COUNT("Color Count", DeckProxy.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<DeckProxy>(0, 5) {
|
DECK_COLOR_COUNT("lblColorCount", DeckProxy.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<DeckProxy>(0, 5) {
|
||||||
@Override
|
@Override
|
||||||
protected Integer getItemValue(DeckProxy input) {
|
protected Integer getItemValue(DeckProxy input) {
|
||||||
return input.getColor().countColors();
|
return input.getColor().countColors();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
DECK_AVERAGE_CMC("Average CMC", DeckProxy.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<DeckProxy>(0, 20) {
|
DECK_AVERAGE_CMC("lblAverageCMC", DeckProxy.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<DeckProxy>(0, 20) {
|
||||||
@Override
|
@Override
|
||||||
protected Integer getItemValue(DeckProxy input) {
|
protected Integer getItemValue(DeckProxy input) {
|
||||||
return input.getAverageCMC();
|
return input.getAverageCMC();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
DECK_MAIN("Main Deck", DeckProxy.class, FilterOperator.DECK_CONTENT_OPS, new DeckContentEvaluator<DeckProxy>() {
|
DECK_MAIN("lblMainDeck", DeckProxy.class, FilterOperator.DECK_CONTENT_OPS, new DeckContentEvaluator<DeckProxy>() {
|
||||||
@Override
|
@Override
|
||||||
protected Map<String, Integer> getItemValue(DeckProxy input) {
|
protected Map<String, Integer> getItemValue(DeckProxy input) {
|
||||||
return input.getDeck().getMain().toNameLookup();
|
return input.getDeck().getMain().toNameLookup();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
DECK_SIDEBOARD("Sideboard", DeckProxy.class, FilterOperator.DECK_CONTENT_OPS, new DeckContentEvaluator<DeckProxy>() {
|
DECK_SIDEBOARD("lblSideboard", DeckProxy.class, FilterOperator.DECK_CONTENT_OPS, new DeckContentEvaluator<DeckProxy>() {
|
||||||
@Override
|
@Override
|
||||||
protected Map<String, Integer> getItemValue(DeckProxy input) {
|
protected Map<String, Integer> getItemValue(DeckProxy input) {
|
||||||
CardPool sideboard = input.getDeck().get(DeckSection.Sideboard);
|
CardPool sideboard = input.getDeck().get(DeckSection.Sideboard);
|
||||||
@@ -299,31 +301,31 @@ public class AdvancedSearch {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
DECK_MAIN_SIZE("Main Deck Size", DeckProxy.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<DeckProxy>(40, 250) {
|
DECK_MAIN_SIZE("lblMainDeckSize", DeckProxy.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<DeckProxy>(40, 250) {
|
||||||
@Override
|
@Override
|
||||||
protected Integer getItemValue(DeckProxy input) {
|
protected Integer getItemValue(DeckProxy input) {
|
||||||
return input.getMainSize();
|
return input.getMainSize();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
DECK_SIDE_SIZE("Sideboard Size", DeckProxy.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<DeckProxy>(0, 15) {
|
DECK_SIDE_SIZE("lblSideboardSize", DeckProxy.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<DeckProxy>(0, 15) {
|
||||||
@Override
|
@Override
|
||||||
protected Integer getItemValue(DeckProxy input) {
|
protected Integer getItemValue(DeckProxy input) {
|
||||||
return Math.min(input.getSideSize(), 0);
|
return Math.min(input.getSideSize(), 0);
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
COMMANDER_NAME("Name", ConquestCommander.class, FilterOperator.STRING_OPS, new StringEvaluator<ConquestCommander>() {
|
COMMANDER_NAME("lblName", ConquestCommander.class, FilterOperator.STRING_OPS, new StringEvaluator<ConquestCommander>() {
|
||||||
@Override
|
@Override
|
||||||
protected String getItemValue(ConquestCommander input) {
|
protected String getItemValue(ConquestCommander input) {
|
||||||
return input.getName();
|
return input.getName();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
COMMANDER_ORIGIN("Origin", ConquestCommander.class, FilterOperator.SINGLE_LIST_OPS, new CustomListEvaluator<ConquestCommander, ConquestPlane>(ImmutableList.copyOf(FModel.getPlanes())) {
|
COMMANDER_ORIGIN("lblOrigin", ConquestCommander.class, FilterOperator.SINGLE_LIST_OPS, new CustomListEvaluator<ConquestCommander, ConquestPlane>(ImmutableList.copyOf(FModel.getPlanes())) {
|
||||||
@Override
|
@Override
|
||||||
protected ConquestPlane getItemValue(ConquestCommander input) {
|
protected ConquestPlane getItemValue(ConquestCommander input) {
|
||||||
return input.getOriginPlane();
|
return input.getOriginPlane();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
COMMANDER_COLOR("Color", ConquestCommander.class, FilterOperator.COMBINATION_OPS, new ColorEvaluator<ConquestCommander>() {
|
COMMANDER_COLOR("lblColor", ConquestCommander.class, FilterOperator.COMBINATION_OPS, new ColorEvaluator<ConquestCommander>() {
|
||||||
@Override
|
@Override
|
||||||
protected MagicColor.Color getItemValue(ConquestCommander input) {
|
protected MagicColor.Color getItemValue(ConquestCommander input) {
|
||||||
throw new RuntimeException("getItemValues should be called instead");
|
throw new RuntimeException("getItemValues should be called instead");
|
||||||
@@ -333,25 +335,25 @@ public class AdvancedSearch {
|
|||||||
return input.getCard().getRules().getColorIdentity().toEnumSet();
|
return input.getCard().getRules().getColorIdentity().toEnumSet();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
COMMANDER_COLOR_COUNT("Color Count", ConquestCommander.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<ConquestCommander>(0, 5) {
|
COMMANDER_COLOR_COUNT("lblColorCount", ConquestCommander.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<ConquestCommander>(0, 5) {
|
||||||
@Override
|
@Override
|
||||||
protected Integer getItemValue(ConquestCommander input) {
|
protected Integer getItemValue(ConquestCommander input) {
|
||||||
return input.getCard().getRules().getColorIdentity().countColors();
|
return input.getCard().getRules().getColorIdentity().countColors();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
COMMANDER_DECK_AVERAGE_CMC("Deck Average CMC", ConquestCommander.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<ConquestCommander>(0, 20) {
|
COMMANDER_DECK_AVERAGE_CMC("lblDeckAverageCMC", ConquestCommander.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<ConquestCommander>(0, 20) {
|
||||||
@Override
|
@Override
|
||||||
protected Integer getItemValue(ConquestCommander input) {
|
protected Integer getItemValue(ConquestCommander input) {
|
||||||
return DeckProxy.getAverageCMC(input.getDeck());
|
return DeckProxy.getAverageCMC(input.getDeck());
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
COMMANDER_DECK_CONTENTS("Deck Contents", ConquestCommander.class, FilterOperator.DECK_CONTENT_OPS, new DeckContentEvaluator<ConquestCommander>() {
|
COMMANDER_DECK_CONTENTS("lblDeckContents", ConquestCommander.class, FilterOperator.DECK_CONTENT_OPS, new DeckContentEvaluator<ConquestCommander>() {
|
||||||
@Override
|
@Override
|
||||||
protected Map<String, Integer> getItemValue(ConquestCommander input) {
|
protected Map<String, Integer> getItemValue(ConquestCommander input) {
|
||||||
return input.getDeck().getMain().toNameLookup();
|
return input.getDeck().getMain().toNameLookup();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
COMMANDER_DECK_SIZE("Deck Size", DeckProxy.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<DeckProxy>(40, 250) {
|
COMMANDER_DECK_SIZE("lblDeckSize", DeckProxy.class, FilterOperator.NUMBER_OPS, new NumericEvaluator<DeckProxy>(40, 250) {
|
||||||
@Override
|
@Override
|
||||||
protected Integer getItemValue(DeckProxy input) {
|
protected Integer getItemValue(DeckProxy input) {
|
||||||
return input.getMainSize();
|
return input.getMainSize();
|
||||||
@@ -364,7 +366,7 @@ public class AdvancedSearch {
|
|||||||
private final FilterEvaluator<? extends InventoryItem, ?> evaluator;
|
private final FilterEvaluator<? extends InventoryItem, ?> evaluator;
|
||||||
|
|
||||||
FilterOption(String name0, Class<? extends InventoryItem> type0, FilterOperator[] operatorOptions0, FilterEvaluator<? extends InventoryItem, ?> evaluator0) {
|
FilterOption(String name0, Class<? extends InventoryItem> type0, FilterOperator[] operatorOptions0, FilterEvaluator<? extends InventoryItem, ?> evaluator0) {
|
||||||
name = name0;
|
name = Localizer.getInstance().getMessage(name0);
|
||||||
type = type0;
|
type = type0;
|
||||||
operatorOptions = operatorOptions0;
|
operatorOptions = operatorOptions0;
|
||||||
evaluator = evaluator0;
|
evaluator = evaluator0;
|
||||||
@@ -378,7 +380,7 @@ public class AdvancedSearch {
|
|||||||
|
|
||||||
public enum FilterOperator {
|
public enum FilterOperator {
|
||||||
//Boolean operators
|
//Boolean operators
|
||||||
IS_TRUE("is true", "%1$s is true", FilterValueCount.ZERO, new OperatorEvaluator<Boolean>() {
|
IS_TRUE("lblIsTrue", "%1$s is true", FilterValueCount.ZERO, new OperatorEvaluator<Boolean>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Boolean input, List<Boolean> values) {
|
public boolean apply(Boolean input, List<Boolean> values) {
|
||||||
if (input != null) {
|
if (input != null) {
|
||||||
@@ -387,7 +389,7 @@ public class AdvancedSearch {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
IS_FALSE("is false", "%1$s is false", FilterValueCount.ZERO, new OperatorEvaluator<Boolean>() {
|
IS_FALSE("lblIsFalse", "%1$s is false", FilterValueCount.ZERO, new OperatorEvaluator<Boolean>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Boolean input, List<Boolean> values) {
|
public boolean apply(Boolean input, List<Boolean> values) {
|
||||||
if (input != null) {
|
if (input != null) {
|
||||||
@@ -398,7 +400,7 @@ public class AdvancedSearch {
|
|||||||
}),
|
}),
|
||||||
|
|
||||||
//Numeric operators
|
//Numeric operators
|
||||||
EQUALS("=", "%1$s = %2$d", FilterValueCount.ONE, new OperatorEvaluator<Integer>() {
|
EQUALS("lblEqual", "%1$s = %2$d", FilterValueCount.ONE, new OperatorEvaluator<Integer>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Integer input, List<Integer> values) {
|
public boolean apply(Integer input, List<Integer> values) {
|
||||||
if (input != null) {
|
if (input != null) {
|
||||||
@@ -407,7 +409,7 @@ public class AdvancedSearch {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
NOT_EQUALS("<>", "%1$s <> %2$d", FilterValueCount.ONE, new OperatorEvaluator<Integer>() {
|
NOT_EQUALS("lblNotEqual", "%1$s <> %2$d", FilterValueCount.ONE, new OperatorEvaluator<Integer>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Integer input, List<Integer> values) {
|
public boolean apply(Integer input, List<Integer> values) {
|
||||||
if (input != null) {
|
if (input != null) {
|
||||||
@@ -416,7 +418,7 @@ public class AdvancedSearch {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
GREATER_THAN(">", "%1$s > %2$d", FilterValueCount.ONE, new OperatorEvaluator<Integer>() {
|
GREATER_THAN("lblGreaterThan", "%1$s > %2$d", FilterValueCount.ONE, new OperatorEvaluator<Integer>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Integer input, List<Integer> values) {
|
public boolean apply(Integer input, List<Integer> values) {
|
||||||
if (input != null) {
|
if (input != null) {
|
||||||
@@ -425,7 +427,7 @@ public class AdvancedSearch {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
LESS_THAN("<", "%1$s < %2$d", FilterValueCount.ONE, new OperatorEvaluator<Integer>() {
|
LESS_THAN("lblLessThan", "%1$s < %2$d", FilterValueCount.ONE, new OperatorEvaluator<Integer>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Integer input, List<Integer> values) {
|
public boolean apply(Integer input, List<Integer> values) {
|
||||||
if (input != null) {
|
if (input != null) {
|
||||||
@@ -434,7 +436,7 @@ public class AdvancedSearch {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
GT_OR_EQUAL(">=", "%1$s >= %2$d", FilterValueCount.ONE, new OperatorEvaluator<Integer>() {
|
GT_OR_EQUAL("lblGreaterThanOrEqual", "%1$s >= %2$d", FilterValueCount.ONE, new OperatorEvaluator<Integer>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Integer input, List<Integer> values) {
|
public boolean apply(Integer input, List<Integer> values) {
|
||||||
if (input != null) {
|
if (input != null) {
|
||||||
@@ -443,7 +445,7 @@ public class AdvancedSearch {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
LT_OR_EQUAL("<=", "%1$s <= %2$d", FilterValueCount.ONE, new OperatorEvaluator<Integer>() {
|
LT_OR_EQUAL("lblLessThanOrEqual", "%1$s <= %2$d", FilterValueCount.ONE, new OperatorEvaluator<Integer>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Integer input, List<Integer> values) {
|
public boolean apply(Integer input, List<Integer> values) {
|
||||||
if (input != null) {
|
if (input != null) {
|
||||||
@@ -452,7 +454,7 @@ public class AdvancedSearch {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
BETWEEN_INCLUSIVE("<=|<=", "%2$d <= %1$s <= %3$d", FilterValueCount.TWO, new OperatorEvaluator<Integer>() {
|
BETWEEN_INCLUSIVE("lblBetweenInclusive", "%2$d <= %1$s <= %3$d", FilterValueCount.TWO, new OperatorEvaluator<Integer>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Integer input, List<Integer> values) {
|
public boolean apply(Integer input, List<Integer> values) {
|
||||||
if (input != null) {
|
if (input != null) {
|
||||||
@@ -462,7 +464,7 @@ public class AdvancedSearch {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
BETWEEN_EXCLUSIVE("<|<", "%2$d < %1$s < %3$d", FilterValueCount.TWO, new OperatorEvaluator<Integer>() {
|
BETWEEN_EXCLUSIVE("lblBetweenExclusive", "%2$d < %1$s < %3$d", FilterValueCount.TWO, new OperatorEvaluator<Integer>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Integer input, List<Integer> values) {
|
public boolean apply(Integer input, List<Integer> values) {
|
||||||
if (input != null) {
|
if (input != null) {
|
||||||
@@ -474,7 +476,7 @@ public class AdvancedSearch {
|
|||||||
}),
|
}),
|
||||||
|
|
||||||
//String operators
|
//String operators
|
||||||
CONTAINS("contains", "%1$s contains '%2$s'", FilterValueCount.ONE, new OperatorEvaluator<String>() {
|
CONTAINS("lblContains", "%1$s contains '%2$s'", FilterValueCount.ONE, new OperatorEvaluator<String>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(String input, List<String> values) {
|
public boolean apply(String input, List<String> values) {
|
||||||
if (input != null) {
|
if (input != null) {
|
||||||
@@ -483,7 +485,7 @@ public class AdvancedSearch {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
STARTS_WITH("starts with", "%1$s starts with '%2$s'", FilterValueCount.ONE, new OperatorEvaluator<String>() {
|
STARTS_WITH("lblStartsWith", "%1$s starts with '%2$s'", FilterValueCount.ONE, new OperatorEvaluator<String>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(String input, List<String> values) {
|
public boolean apply(String input, List<String> values) {
|
||||||
if (input != null) {
|
if (input != null) {
|
||||||
@@ -492,7 +494,7 @@ public class AdvancedSearch {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
ENDS_WITH("ends with", "%1$s ends with '%2$s'", FilterValueCount.ONE, new OperatorEvaluator<String>() {
|
ENDS_WITH("lblEndsWith", "%1$s ends with '%2$s'", FilterValueCount.ONE, new OperatorEvaluator<String>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(String input, List<String> values) {
|
public boolean apply(String input, List<String> values) {
|
||||||
if (input != null) {
|
if (input != null) {
|
||||||
@@ -503,7 +505,7 @@ public class AdvancedSearch {
|
|||||||
}),
|
}),
|
||||||
|
|
||||||
//Custom list operators
|
//Custom list operators
|
||||||
IS_EXACTLY("is exactly", "%1$s is %2$s", FilterValueCount.MANY, new OperatorEvaluator<Object>() {
|
IS_EXACTLY("lblIsExactly", "%1$s is %2$s", FilterValueCount.MANY, new OperatorEvaluator<Object>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Object input, List<Object> values) {
|
public boolean apply(Object input, List<Object> values) {
|
||||||
if (input != null && values.size() == 1) {
|
if (input != null && values.size() == 1) {
|
||||||
@@ -524,7 +526,7 @@ public class AdvancedSearch {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
IS_ANY("is any of", "%1$s is %2$s", FilterValueCount.MANY_OR, new OperatorEvaluator<Object>() {
|
IS_ANY("lblIsAnyOf", "%1$s is %2$s", FilterValueCount.MANY_OR, new OperatorEvaluator<Object>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Object input, List<Object> values) {
|
public boolean apply(Object input, List<Object> values) {
|
||||||
if (input != null) {
|
if (input != null) {
|
||||||
@@ -548,7 +550,7 @@ public class AdvancedSearch {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CONTAINS_ANY("contains any of", "%1$s contains %2$s", FilterValueCount.MANY_OR, new OperatorEvaluator<Object>() {
|
CONTAINS_ANY("lblContainsAnyOf", "%1$s contains %2$s", FilterValueCount.MANY_OR, new OperatorEvaluator<Object>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Object input, List<Object> values) {
|
public boolean apply(Object input, List<Object> values) {
|
||||||
if (input != null) {
|
if (input != null) {
|
||||||
@@ -572,7 +574,7 @@ public class AdvancedSearch {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CONTAINS_ALL("contains all of", "%1$s contains %2$s", FilterValueCount.MANY_AND, new OperatorEvaluator<Object>() {
|
CONTAINS_ALL("lblContainsAllOf", "%1$s contains %2$s", FilterValueCount.MANY_AND, new OperatorEvaluator<Object>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Object input, List<Object> values) {
|
public boolean apply(Object input, List<Object> values) {
|
||||||
if (input != null && values.size() == 1) {
|
if (input != null && values.size() == 1) {
|
||||||
@@ -593,7 +595,7 @@ public class AdvancedSearch {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CONTAIN_ANY("contain any of", "%1$s contain %2$s", FilterValueCount.MANY_OR, new OperatorEvaluator<Object>() {
|
CONTAIN_ANY("lblContainAnyOf", "%1$s contain %2$s", FilterValueCount.MANY_OR, new OperatorEvaluator<Object>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Object input, List<Object> values) {
|
public boolean apply(Object input, List<Object> values) {
|
||||||
throw new RuntimeException("shouldn't be called with a single input");
|
throw new RuntimeException("shouldn't be called with a single input");
|
||||||
@@ -610,7 +612,7 @@ public class AdvancedSearch {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CONTAIN_ALL("contain all of", "%1$s contain %2$s", FilterValueCount.MANY_AND, new OperatorEvaluator<Object>() {
|
CONTAIN_ALL("lblContainAllOf", "%1$s contain %2$s", FilterValueCount.MANY_AND, new OperatorEvaluator<Object>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Object input, List<Object> values) {
|
public boolean apply(Object input, List<Object> values) {
|
||||||
throw new RuntimeException("shouldn't be called with a single input");
|
throw new RuntimeException("shouldn't be called with a single input");
|
||||||
@@ -630,7 +632,7 @@ public class AdvancedSearch {
|
|||||||
}),
|
}),
|
||||||
|
|
||||||
//Deck content operators
|
//Deck content operators
|
||||||
CONTAINS_CARD("contains card", "%1$s contains %2$s", FilterValueCount.ONE, new OperatorEvaluator<Map<PaperCard, Integer>>() {
|
CONTAINS_CARD("lblContainsCard", "%1$s contains %2$s", FilterValueCount.ONE, new OperatorEvaluator<Map<PaperCard, Integer>>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Map<PaperCard, Integer> input, List<Map<PaperCard, Integer>> values) {
|
public boolean apply(Map<PaperCard, Integer> input, List<Map<PaperCard, Integer>> values) {
|
||||||
if (input != null) {
|
if (input != null) {
|
||||||
@@ -640,7 +642,7 @@ public class AdvancedSearch {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CONTAINS_X_COPIES_OF_CARD("contains X copies of card", "%1$s contains %3$d %2$s", FilterValueCount.TWO, new OperatorEvaluator<Map<PaperCard, Integer>>() {
|
CONTAINS_X_COPIES_OF_CARD("lblContainsXCopiesCard", "%1$s contains %3$d %2$s", FilterValueCount.TWO, new OperatorEvaluator<Map<PaperCard, Integer>>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Map<PaperCard, Integer> input, List<Map<PaperCard, Integer>> values) {
|
public boolean apply(Map<PaperCard, Integer> input, List<Map<PaperCard, Integer>> values) {
|
||||||
if (input != null) {
|
if (input != null) {
|
||||||
@@ -681,7 +683,7 @@ public class AdvancedSearch {
|
|||||||
private final OperatorEvaluator<?> evaluator;
|
private final OperatorEvaluator<?> evaluator;
|
||||||
|
|
||||||
FilterOperator(String caption0, String formatStr0, FilterValueCount valueCount0, OperatorEvaluator<?> evaluator0) {
|
FilterOperator(String caption0, String formatStr0, FilterValueCount valueCount0, OperatorEvaluator<?> evaluator0) {
|
||||||
caption = caption0;
|
caption = Localizer.getInstance().getMessage(caption0);
|
||||||
formatStr = formatStr0;
|
formatStr = formatStr0;
|
||||||
valueCount = valueCount0;
|
valueCount = valueCount0;
|
||||||
evaluator = evaluator0;
|
evaluator = evaluator0;
|
||||||
@@ -930,7 +932,7 @@ public class AdvancedSearch {
|
|||||||
|
|
||||||
Integer amount = -1;
|
Integer amount = -1;
|
||||||
if (operator == FilterOperator.CONTAINS_X_COPIES_OF_CARD) { //prompt for quantity if needed
|
if (operator == FilterOperator.CONTAINS_X_COPIES_OF_CARD) { //prompt for quantity if needed
|
||||||
amount = SGuiChoose.getInteger("How many copies of " + card.getName() + "?", 0, 4);
|
amount = SGuiChoose.getInteger(Localizer.getInstance().getMessage("lblHowManyCopiesOfN", CardTranslation.getTranslatedName(card.getName())), 0, 4);
|
||||||
if (amount == null) { return null; }
|
if (amount == null) { return null; }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -967,7 +969,7 @@ public class AdvancedSearch {
|
|||||||
options.add(opt);
|
options.add(opt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
option = SGuiChoose.oneOrNone("Select a filter type", options, defaultOption, null);
|
option = SGuiChoose.oneOrNone(Localizer.getInstance().getMessage("lblSelectAFilterType"), options, defaultOption, null);
|
||||||
if (option == null) { return editFilter; }
|
if (option == null) { return editFilter; }
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -979,7 +981,7 @@ public class AdvancedSearch {
|
|||||||
final FilterOperator operator;
|
final FilterOperator operator;
|
||||||
if (option.operatorOptions.length > 1) {
|
if (option.operatorOptions.length > 1) {
|
||||||
final FilterOperator defaultOperator = option == defaultOption ? editFilter.operator : null;
|
final FilterOperator defaultOperator = option == defaultOption ? editFilter.operator : null;
|
||||||
operator = SGuiChoose.oneOrNone("Select an operator for " + option.name, option.operatorOptions, defaultOperator, null);
|
operator = SGuiChoose.oneOrNone(Localizer.getInstance().getMessage("lblSelectOperatorFor", option.name), option.operatorOptions, defaultOperator, null);
|
||||||
if (operator == null) { return editFilter; }
|
if (operator == null) { return editFilter; }
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -1049,7 +1051,7 @@ public class AdvancedSearch {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static class Model<T extends InventoryItem> {
|
public static class Model<T extends InventoryItem> {
|
||||||
private static final String EMPTY_FILTER_TEXT = "Select Filter...";
|
private static final String EMPTY_FILTER_TEXT = Localizer.getInstance().getMessage("lblSelectingFilter");
|
||||||
|
|
||||||
private final List<Object> expression = new ArrayList<>();
|
private final List<Object> expression = new ArrayList<>();
|
||||||
private final List<IFilterControl<T>> controls = new ArrayList<>();
|
private final List<IFilterControl<T>> controls = new ArrayList<>();
|
||||||
@@ -1162,7 +1164,7 @@ public class AdvancedSearch {
|
|||||||
//the first time the user selects keywords, preload keywords for all cards
|
//the first time the user selects keywords, preload keywords for all cards
|
||||||
Runnable preloadTask = Keyword.getPreloadTask();
|
Runnable preloadTask = Keyword.getPreloadTask();
|
||||||
if (preloadTask != null) {
|
if (preloadTask != null) {
|
||||||
GuiBase.getInterface().runBackgroundTask("Loading keywords...", preloadTask);
|
GuiBase.getInterface().runBackgroundTask(Localizer.getInstance().getMessage("lblLoadingKeywords"), preloadTask);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user