mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +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.itemmanager.ItemManager;
|
||||
import forge.gui.toolbox.itemmanager.SFilterUtil;
|
||||
import forge.item.InventoryItem;
|
||||
import forge.item.PaperCard;
|
||||
|
||||
/**
|
||||
@@ -109,6 +110,27 @@ public class CardSearchFilter extends TextSearchFilter<PaperCard> {
|
||||
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
|
||||
protected Predicate<PaperCard> buildPredicate() {
|
||||
return SFilterUtil.buildTextFilter(
|
||||
|
||||
Reference in New Issue
Block a user