mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
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.
This commit is contained in:
@@ -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<PaperCard> {
|
||||
|
||||
@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<PaperCard> {
|
||||
final List<Predicate<CardRules>> cmcs = new ArrayList<Predicate<CardRules>>();
|
||||
|
||||
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);
|
||||
|
||||
@@ -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<PaperCard> {
|
||||
|
||||
@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);
|
||||
|
||||
@@ -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<PaperCard> {
|
||||
}
|
||||
return Predicates.compose(Predicates.or(types), PaperCard.FN_GET_RULES);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected <U extends InventoryItem> 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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<T extends InventoryItem> extends ToggleButt
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected <U extends InventoryItem> 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<? super T> 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<SItemManagerUtil.StatTypes, FLabel> btn : buttonMap.entrySet()) {
|
||||
if (btn.getKey().predicate != null) {
|
||||
int count = items.countAll(Predicates.compose(btn.getKey().predicate, PaperCard.FN_GET_RULES), PaperCard.class);
|
||||
|
||||
Reference in New Issue
Block a user