From a24161db2b24e6703de6b4b2c3e5f37c032f3661 Mon Sep 17 00:00:00 2001 From: drdev Date: Tue, 17 Dec 2013 21:42:21 +0000 Subject: [PATCH] Support search for non-card items in SpellShop --- .../itemmanager/filters/CardSearchFilter.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/CardSearchFilter.java b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/CardSearchFilter.java index f82d8f49adf..bcd82ad8dc2 100644 --- a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/CardSearchFilter.java +++ b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/CardSearchFilter.java @@ -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 { return button; } + @Override + public Predicate buildPredicate(Class genericType) { + final Predicate predicate = this.buildPredicate(); + return new Predicate() { + @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 buildPredicate() { return SFilterUtil.buildTextFilter(