Support search for non-card items in SpellShop

This commit is contained in:
drdev
2013-12-17 21:42:21 +00:00
parent 117501c511
commit a24161db2b

View File

@@ -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(