From 5dee59e8e5d905b5530d1fbc5ec77d5409964ae5 Mon Sep 17 00:00:00 2001 From: drdev Date: Fri, 20 Dec 2013 04:57:04 +0000 Subject: [PATCH] Make Pack stat label appear in color and cmc filters too so each toggle button filter has the same button count and works the same way when left clicking other filters. --- .../itemmanager/filters/CardCMCFilter.java | 8 +++++-- .../itemmanager/filters/CardColorFilter.java | 4 ++++ .../itemmanager/filters/CardTypeFilter.java | 22 ------------------- .../itemmanager/filters/StatTypeFilter.java | 17 ++++++++++++++ 4 files changed, 27 insertions(+), 24 deletions(-) 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);