mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
Support search for non-card items in SpellShop
This commit is contained in:
@@ -14,6 +14,7 @@ import forge.gui.toolbox.FTextField;
|
|||||||
import forge.gui.toolbox.LayoutHelper;
|
import forge.gui.toolbox.LayoutHelper;
|
||||||
import forge.gui.toolbox.itemmanager.ItemManager;
|
import forge.gui.toolbox.itemmanager.ItemManager;
|
||||||
import forge.gui.toolbox.itemmanager.SFilterUtil;
|
import forge.gui.toolbox.itemmanager.SFilterUtil;
|
||||||
|
import forge.item.InventoryItem;
|
||||||
import forge.item.PaperCard;
|
import forge.item.PaperCard;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -109,6 +110,27 @@ public class CardSearchFilter extends TextSearchFilter<PaperCard> {
|
|||||||
return button;
|
return button;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <U extends InventoryItem> Predicate<U> buildPredicate(Class<U> genericType) {
|
||||||
|
final Predicate<PaperCard> predicate = this.buildPredicate();
|
||||||
|
return new Predicate<U>() {
|
||||||
|
@Override
|
||||||
|
public boolean apply(U item) {
|
||||||
|
try {
|
||||||
|
return predicate.apply((PaperCard)item);
|
||||||
|
}
|
||||||
|
catch (Exception ex) {
|
||||||
|
//fallback to regular item text filter if item not PaperCard
|
||||||
|
boolean result = btnName.getSelected() && SFilterUtil.buildItemTextFilter(txtSearch.getText()).apply(item);
|
||||||
|
if (cbSearchMode.getSelectedIndex() != 0) { //invert result if needed
|
||||||
|
result = !result;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Predicate<PaperCard> buildPredicate() {
|
protected Predicate<PaperCard> buildPredicate() {
|
||||||
return SFilterUtil.buildTextFilter(
|
return SFilterUtil.buildTextFilter(
|
||||||
|
|||||||
Reference in New Issue
Block a user