diff --git a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/CardCMCFilter.java b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/CardCMCFilter.java index 1ae98b9fc54..bac5ed6da78 100644 --- a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/CardCMCFilter.java +++ b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/CardCMCFilter.java @@ -11,6 +11,7 @@ import com.google.common.base.Predicates; import forge.card.CardRules; import forge.gui.toolbox.itemmanager.ItemManager; import forge.gui.toolbox.itemmanager.SItemManagerUtil; +import forge.gui.toolbox.itemmanager.SpellShopManager; import forge.gui.toolbox.itemmanager.SItemManagerUtil.StatTypes; import forge.item.PaperCard; @@ -30,6 +31,9 @@ public class CardCMCFilter extends StatTypeFilter { @Override protected void buildWidget(JPanel widget) { + if (itemManager instanceof SpellShopManager) { + addToggleButton(widget, StatTypes.PACK_OR_DECK); + } addToggleButton(widget, StatTypes.CMC_0); addToggleButton(widget, StatTypes.CMC_1); addToggleButton(widget, StatTypes.CMC_2); @@ -44,12 +48,12 @@ public class CardCMCFilter extends StatTypeFilter { final List> cmcs = new ArrayList>(); for (SItemManagerUtil.StatTypes s : buttonMap.keySet()) { - if (buttonMap.get(s).getSelected()) { + if (s.predicate != null && buttonMap.get(s).getSelected()) { cmcs.add(s.predicate); } } - if (cmcs.size() == 7) { + if (cmcs.size() == buttonMap.size()) { return Predicates.alwaysTrue(); } return Predicates.compose(Predicates.or(cmcs), PaperCard.FN_GET_RULES); diff --git a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/CardColorFilter.java b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/CardColorFilter.java index 46c89c24665..d292c956e0a 100644 --- a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/CardColorFilter.java +++ b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/CardColorFilter.java @@ -11,6 +11,7 @@ import forge.card.MagicColor; import forge.card.CardRulesPredicates.Presets; import forge.gui.toolbox.itemmanager.ItemManager; import forge.gui.toolbox.itemmanager.SFilterUtil; +import forge.gui.toolbox.itemmanager.SpellShopManager; import forge.gui.toolbox.itemmanager.SItemManagerUtil.StatTypes; import forge.item.PaperCard; @@ -30,6 +31,9 @@ public class CardColorFilter extends StatTypeFilter { @Override protected void buildWidget(JPanel widget) { + if (itemManager instanceof SpellShopManager) { + addToggleButton(widget, StatTypes.PACK_OR_DECK); + } addToggleButton(widget, StatTypes.WHITE); addToggleButton(widget, StatTypes.BLUE); addToggleButton(widget, StatTypes.BLACK); diff --git a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/CardTypeFilter.java b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/CardTypeFilter.java index 949dede716a..97cbc7e733e 100644 --- a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/CardTypeFilter.java +++ b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/CardTypeFilter.java @@ -8,13 +8,10 @@ import com.google.common.base.Predicate; import com.google.common.base.Predicates; import forge.card.CardRules; -import forge.gui.toolbox.FLabel; import forge.gui.toolbox.itemmanager.ItemManager; import forge.gui.toolbox.itemmanager.SItemManagerUtil; import forge.gui.toolbox.itemmanager.SpellShopManager; import forge.gui.toolbox.itemmanager.SItemManagerUtil.StatTypes; -import forge.item.InventoryItem; -import forge.item.ItemPredicate; import forge.item.PaperCard; /** @@ -60,23 +57,4 @@ public class CardTypeFilter extends StatTypeFilter { } return Predicates.compose(Predicates.or(types), PaperCard.FN_GET_RULES); } - - @Override - protected boolean showUnsupportedItem(U item) { - FLabel btnPack = buttonMap.get(StatTypes.PACK_OR_DECK); - if (btnPack != null && btnPack.getSelected()) { - return ItemPredicate.Presets.IS_PACK_OR_DECK.apply(item); - } - return false; - } - - @Override - public void afterFiltersApplied() { - FLabel btnPack = buttonMap.get(StatTypes.PACK_OR_DECK); - if (btnPack != null) { - int count = itemManager.getFilteredItems().countAll(ItemPredicate.Presets.IS_PACK_OR_DECK, InventoryItem.class); - btnPack.setText(String.valueOf(count)); - } - super.afterFiltersApplied(); - } } diff --git a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/StatTypeFilter.java b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/StatTypeFilter.java index d9b43cac07e..3e3d5f24fe5 100644 --- a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/StatTypeFilter.java +++ b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/StatTypeFilter.java @@ -13,6 +13,7 @@ import forge.gui.toolbox.itemmanager.ItemManager; import forge.gui.toolbox.itemmanager.SItemManagerUtil; import forge.gui.toolbox.itemmanager.SItemManagerUtil.StatTypes; import forge.item.InventoryItem; +import forge.item.ItemPredicate; import forge.item.PaperCard; import forge.util.ItemPoolView; @@ -90,9 +91,25 @@ public abstract class StatTypeFilter extends ToggleButt }); } + @Override + protected boolean showUnsupportedItem(U item) { + FLabel btnPackOrDeck = buttonMap.get(StatTypes.PACK_OR_DECK); //support special pack/deck case + if (btnPackOrDeck != null && btnPackOrDeck.getSelected()) { + return ItemPredicate.Presets.IS_PACK_OR_DECK.apply(item); + } + return false; + } + @Override public void afterFiltersApplied() { final ItemPoolView items = itemManager.getFilteredItems(); + + FLabel btnPackOrDeck = buttonMap.get(StatTypes.PACK_OR_DECK); + if (btnPackOrDeck != null) { //support special pack/deck case + int count = items.countAll(ItemPredicate.Presets.IS_PACK_OR_DECK, InventoryItem.class); + btnPackOrDeck.setText(String.valueOf(count)); + } + for (Map.Entry btn : buttonMap.entrySet()) { if (btn.getKey().predicate != null) { int count = items.countAll(Predicates.compose(btn.getKey().predicate, PaperCard.FN_GET_RULES), PaperCard.class);