From d1fb51a8982c276d4d0f2accf684d12c0464de84 Mon Sep 17 00:00:00 2001 From: myk Date: Thu, 7 Feb 2013 12:15:44 +0000 Subject: [PATCH] use predicates instead of a custom count function --- src/main/java/forge/gui/deckeditor/SEditorUtil.java | 10 ++++++++-- src/main/java/forge/item/ItemPoolView.java | 12 ------------ 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/src/main/java/forge/gui/deckeditor/SEditorUtil.java b/src/main/java/forge/gui/deckeditor/SEditorUtil.java index 9f3e4a05589..c197cfc7298 100644 --- a/src/main/java/forge/gui/deckeditor/SEditorUtil.java +++ b/src/main/java/forge/gui/deckeditor/SEditorUtil.java @@ -14,6 +14,7 @@ import forge.gui.deckeditor.views.VCardCatalog; import forge.gui.deckeditor.views.VCurrentDeck; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FSkin; +import forge.item.CardPrinted; import forge.item.InventoryItem; import forge.item.ItemPoolView; import forge.util.Aggregates; @@ -77,6 +78,9 @@ public final class SEditorUtil { return (int) Math.round((double) (x0 * 100) / (double) y0); } + private static final Predicate totalPred = Predicates.instanceOf(CardPrinted.class); + private static final Predicate packPred = Predicates.not(totalPred); + /** * setStats. * @@ -88,10 +92,12 @@ public final class SEditorUtil { for (StatTypes s : StatTypes.values()) { switch (s) { case TOTAL: - view.getStatLabel(s).setText(String.valueOf(items.countAll())); + view.getStatLabel(s).setText(String.valueOf( + Aggregates.sum(Iterables.filter(items, Predicates.compose(totalPred, items.getFnToPrinted())), items.getFnToCount()))); break; case PACK: - view.getStatLabel(s).setText(String.valueOf(items.countNonCards())); + view.getStatLabel(s).setText(String.valueOf( + Aggregates.sum(Iterables.filter(items, Predicates.compose(packPred, items.getFnToPrinted())), items.getFnToCount()))); break; default: view.getStatLabel(s).setText(String.valueOf( diff --git a/src/main/java/forge/item/ItemPoolView.java b/src/main/java/forge/item/ItemPoolView.java index a95ad027680..2c9cbe6a5ab 100644 --- a/src/main/java/forge/item/ItemPoolView.java +++ b/src/main/java/forge/item/ItemPoolView.java @@ -171,18 +171,6 @@ public class ItemPoolView implements Iterable e : cards.entrySet()) { - if (!(e.getKey() instanceof CardPrinted)) { - result += e.getValue(); - } - } - } - return result; - } - /** * * countDistinct.