mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
Improve color formatting
This commit is contained in:
@@ -55,7 +55,7 @@ public class AdvancedSearch {
|
|||||||
return FModel.getFormats().getAllFormatsOfCard(input);
|
return FModel.getFormats().getAllFormatsOfCard(input);
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CARD_COLOR("Color", PaperCard.class, FilterOperator.MULTI_LIST_OPS, new CustomListEvaluator<PaperCard, MagicColor.Color>(Arrays.asList(MagicColor.Color.values()), MagicColor.FN_GET_SYMBOL) {
|
CARD_COLOR("Color", PaperCard.class, FilterOperator.MULTI_LIST_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");
|
||||||
@@ -65,7 +65,7 @@ public class AdvancedSearch {
|
|||||||
return input.getRules().getColor().toEnumSet();
|
return input.getRules().getColor().toEnumSet();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
CARD_COLOR_IDENTITY("Color Identity", PaperCard.class, FilterOperator.MULTI_LIST_OPS, new CustomListEvaluator<PaperCard, MagicColor.Color>(Arrays.asList(MagicColor.Color.values()), MagicColor.FN_GET_SYMBOL) {
|
CARD_COLOR_IDENTITY("Color Identity", PaperCard.class, FilterOperator.MULTI_LIST_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");
|
||||||
@@ -568,7 +568,7 @@ public class AdvancedSearch {
|
|||||||
return String.format(operator.formatStr, option.name, valuesStr);
|
return String.format(operator.formatStr, option.name, valuesStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String formatValues(List<V> values, String delim, String finalDelim) {
|
protected String formatValues(List<V> values, String delim, String finalDelim) {
|
||||||
int valueCount = values.size();
|
int valueCount = values.size();
|
||||||
switch (valueCount) {
|
switch (valueCount) {
|
||||||
case 1:
|
case 1:
|
||||||
@@ -586,7 +586,7 @@ public class AdvancedSearch {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private String formatValue(V value) {
|
protected String formatValue(V value) {
|
||||||
if (toShortString == null) {
|
if (toShortString == null) {
|
||||||
return value.toString();
|
return value.toString();
|
||||||
}
|
}
|
||||||
@@ -594,6 +594,21 @@ public class AdvancedSearch {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static abstract class ColorEvaluator<T extends InventoryItem> extends CustomListEvaluator<T, MagicColor.Color> {
|
||||||
|
public ColorEvaluator() {
|
||||||
|
super(Arrays.asList(MagicColor.Color.values()), MagicColor.FN_GET_SYMBOL);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getCaption(List<MagicColor.Color> values, FilterOption option, FilterOperator operator) {
|
||||||
|
if (operator == FilterOperator.IS_EXACTLY) {
|
||||||
|
//handle special case for formatting colors with no spaces in between for is exactly operator
|
||||||
|
return String.format(operator.formatStr, option.name, formatValues(values, "", ""));
|
||||||
|
}
|
||||||
|
return super.getCaption(values, option, operator);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public static <T extends InventoryItem> Filter<T> getFilter(Class<? super T> type, Filter<T> editFilter) {
|
public static <T extends InventoryItem> Filter<T> getFilter(Class<? super T> type, Filter<T> editFilter) {
|
||||||
//build list of filter options based on ItemManager type
|
//build list of filter options based on ItemManager type
|
||||||
|
|||||||
Reference in New Issue
Block a user