diff --git a/forge-gui-mobile/src/forge/itemmanager/ItemManager.java b/forge-gui-mobile/src/forge/itemmanager/ItemManager.java index f9dde710993..e7f4cf39286 100644 --- a/forge-gui-mobile/src/forge/itemmanager/ItemManager.java +++ b/forge-gui-mobile/src/forge/itemmanager/ItemManager.java @@ -45,7 +45,6 @@ import forge.toolbox.FLabel; import forge.util.Aggregates; import forge.util.ItemPool; import forge.util.LayoutHelper; -import forge.util.ReflectionUtil; import java.util.*; import java.util.Map.Entry; @@ -55,9 +54,7 @@ public abstract class ItemManager extends FContainer im private ItemPool pool; private final ItemManagerModel model; private Predicate filterPredicate = null; - private final Map>, List>> filters = - new HashMap>, List>>(); - private final List> orderedFilters = new ArrayList>(); + private final List> filters = new ArrayList>(); private boolean wantUnique = false; private boolean alwaysNonUnique = false; private boolean hideFilters = false; @@ -218,7 +215,7 @@ public abstract class ItemManager extends FContainer im helper.include(btnAdvancedSearchOptions, viewButtonWidth, fieldHeight); helper.newLine(); if (!hideFilters) { - for (ItemFilter filter : orderedFilters) { + for (ItemFilter filter : filters) { helper.include(filter.getWidget(), filter.getPreferredWidth(helper.getRemainingLineWidth(), fieldHeight), fieldHeight); } helper.newLine(-ItemFilter.PADDING); @@ -615,32 +612,8 @@ public abstract class ItemManager extends FContainer im protected abstract void addDefaultFilters(); protected abstract TextSearchFilter createSearchFilter(); - protected > F getFilter(Class filterClass) { - return ReflectionUtil.safeCast(filters.get(filterClass), filterClass); - } - - @SuppressWarnings("unchecked") public void addFilter(final ItemFilter filter) { - final Class> filterClass = (Class>) filter.getClass(); - List> classFilters = filters.get(filterClass); - if (classFilters == null) { - classFilters = new ArrayList>(); - filters.put(filterClass, classFilters); - } - if (classFilters.size() > 0) { - //if filter with the same class already exists, try to merge if allowed - //NOTE: can always use first filter for these checks since if - //merge is supported, only one will ever exist - final ItemFilter existingFilter = classFilters.get(0); - if (existingFilter.merge(filter)) { - //if new filter merged with existing filter, just refresh the widget - existingFilter.refreshWidget(); - applyNewOrModifiedFilter(existingFilter); - return; - } - } - classFilters.add(filter); - orderedFilters.add(filter); + filters.add(filter); add(filter.getWidget()); boolean visible = !hideFilters; @@ -659,37 +632,28 @@ public abstract class ItemManager extends FContainer im public void restoreDefaultFilters() { lockFiltering = true; - for (ItemFilter filter : orderedFilters) { + for (ItemFilter filter : filters) { remove(filter.getWidget()); } filters.clear(); - orderedFilters.clear(); addDefaultFilters(); lockFiltering = false; revalidate(); applyFilters(); } - @SuppressWarnings("unchecked") public void removeFilter(ItemFilter filter) { - final Class> filterClass = (Class>) filter.getClass(); - final List> classFilters = filters.get(filterClass); - if (classFilters != null && classFilters.remove(filter)) { - if (classFilters.size() == 0) { - filters.remove(filterClass); - } - orderedFilters.remove(filter); - remove(filter.getWidget()); - revalidate(); - applyFilters(); - } + filters.remove(filter); + remove(filter.getWidget()); + revalidate(); + applyFilters(); } public boolean applyFilters() { if (lockFiltering || !initialized) { return false; } List> predicates = new ArrayList>(); - for (ItemFilter filter : orderedFilters) { //TODO: Support custom filter logic + for (ItemFilter filter : filters) { //TODO: Support custom filter logic if (!filter.isEmpty()) { predicates.add(filter.buildPredicate(genericType)); } @@ -738,7 +702,7 @@ public abstract class ItemManager extends FContainer im hideFilters = hideFilters0; boolean visible = !hideFilters0; - for (ItemFilter filter : orderedFilters) { + for (ItemFilter filter : filters) { filter.getWidget().setVisible(visible); } for (ItemView view : views) { diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/CardSetFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/CardSetFilter.java index 2ea6db28955..3843c1968df 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/CardSetFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/CardSetFilter.java @@ -28,18 +28,4 @@ public class CardSetFilter extends CardFormatFilter { this.sets.clear(); super.reset(); } - - /** - * Merge the given filter with this filter if possible - * @param filter - * @return true if filter merged in or to suppress adding a new filter, false to allow adding new filter - */ - @Override - public boolean merge(ItemFilter filter) { - CardSetFilter cardSetFilter = (CardSetFilter)filter; - this.sets.addAll(cardSetFilter.sets); - this.formats.clear(); - this.formats.add(new GameFormat(null, this.sets, null)); - return true; - } } diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/DeckFolderFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/DeckFolderFilter.java index bcf94c8ab52..72d68dc75e0 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/DeckFolderFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/DeckFolderFilter.java @@ -69,11 +69,4 @@ public class DeckFolderFilter extends ListLabelFilter { this.folders.clear(); this.updateLabel(); } - - @Override - public boolean merge(ItemFilter filter) { - DeckFolderFilter formatFilter = (DeckFolderFilter)filter; - this.folders.addAll(formatFilter.folders); - return true; - } } diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/DeckSetFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/DeckSetFilter.java index 154f1db586c..1cd2f8949ad 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/DeckSetFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/DeckSetFilter.java @@ -29,20 +29,6 @@ public class DeckSetFilter extends DeckFormatFilter { super.reset(); } - /** - * Merge the given filter with this filter if possible - * @param filter - * @return true if filter merged in or to suppress adding a new filter, false to allow adding new filter - */ - @Override - public boolean merge(ItemFilter filter) { - DeckSetFilter cardSetFilter = (DeckSetFilter)filter; - this.sets.addAll(cardSetFilter.sets); - this.formats.clear(); - this.formats.add(new GameFormat(null, this.sets, null)); - return true; - } - public void edit() { /*final DialogChooseSets dialog = new DialogChooseSets(this.sets, null, true); dialog.setOkCallback(new Runnable() { diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/FormatFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/FormatFilter.java index 1b3e0c406d5..130f0e3d5a5 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/FormatFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/FormatFilter.java @@ -56,19 +56,6 @@ public abstract class FormatFilter extends ItemFilter filter) { - FormatFilter formatFilter = (FormatFilter)filter; - this.formats.addAll(formatFilter.formats); - return true; - } - @Override public boolean isEmpty() { return formats.isEmpty(); diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/ItemFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/ItemFilter.java index 288af093610..a93f3dea7c0 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/ItemFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/ItemFilter.java @@ -67,13 +67,6 @@ public abstract class ItemFilter { public abstract boolean isEmpty(); public abstract void reset(); - /** - * Merge the given filter with this filter if possible - * @param filter - * @return true if filter merged in or to suppress adding a new filter, false to allow adding new filter - */ - public abstract boolean merge(ItemFilter filter); - public float getPreferredWidth(float maxWidth, float height) { return maxWidth; //use maximum width by default } diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/TextSearchFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/TextSearchFilter.java index b548ce6a9d7..585cd4c083b 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/TextSearchFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/TextSearchFilter.java @@ -46,16 +46,6 @@ public class TextSearchFilter extends ItemFilter { return txtSearch; } - /** - * Merge the given filter with this filter if possible - * @param filter - * @return true if filter merged in or to suppress adding a new filter, false to allow adding new filter - */ - @Override - public boolean merge(ItemFilter filter) { - return false; - } - @Override protected void buildWidget(Widget widget) { txtSearch = new SearchField(); diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/ToggleButtonsFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/ToggleButtonsFilter.java index 99ecfd3c642..dfd1a8967e7 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/ToggleButtonsFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/ToggleButtonsFilter.java @@ -61,16 +61,6 @@ public abstract class ToggleButtonsFilter extends ItemF button.setSelected(true); } } - - /** - * Merge the given filter with this filter if possible - * @param filter - * @return true if filter merged in or to suppress adding a new filter, false to allow adding new filter - */ - @Override - public boolean merge(ItemFilter filter) { - return true; - } public class ToggleButton extends FLabel { private FEventHandler longPressHandler; diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/ValueRangeFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/ValueRangeFilter.java index 833fa14177b..f54a557b16d 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/ValueRangeFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/ValueRangeFilter.java @@ -107,14 +107,4 @@ public abstract class ValueRangeFilter extends ItemFilt return SFilterUtil.optimizedAnd(pLower, pUpper); } - - /** - * Merge the given filter with this filter if possible - * @param filter - * @return true if filter merged in or to suppress adding a new filter, false to allow adding new filter - */ - @Override - public boolean merge(ItemFilter filter) { - return true; - } }