diff --git a/.gitattributes b/.gitattributes index 5f060e43188..fda4b3fb075 100644 --- a/.gitattributes +++ b/.gitattributes @@ -15022,6 +15022,7 @@ src/main/java/forge/gui/toolbox/itemmanager/filters/CardQuestWorldFilter.java -t src/main/java/forge/gui/toolbox/itemmanager/filters/CardSetFilter.java -text src/main/java/forge/gui/toolbox/itemmanager/filters/CardToughnessFilter.java -text src/main/java/forge/gui/toolbox/itemmanager/filters/CardTypeFilter.java -text +src/main/java/forge/gui/toolbox/itemmanager/filters/ItemFilter.java -text src/main/java/forge/gui/toolbox/itemmanager/filters/ListLabelFilter.java -text src/main/java/forge/gui/toolbox/itemmanager/filters/TextFieldFilter.java -text src/main/java/forge/gui/toolbox/itemmanager/filters/ToggleButtonsFilter.java -text diff --git a/src/main/java/forge/gui/toolbox/itemmanager/filters/ItemFilter.java b/src/main/java/forge/gui/toolbox/itemmanager/filters/ItemFilter.java new file mode 100644 index 00000000000..17db43ec326 --- /dev/null +++ b/src/main/java/forge/gui/toolbox/itemmanager/filters/ItemFilter.java @@ -0,0 +1,50 @@ +package forge.gui.toolbox.itemmanager.filters; + +import javax.swing.JPanel; + +import forge.Command; +import forge.gui.toolbox.FLabel; +import forge.gui.toolbox.itemmanager.ItemManager; +import forge.item.InventoryItem; + +/** + * TODO: Write javadoc for this type. + * + */ +@SuppressWarnings("serial") +public abstract class ItemFilter extends JPanel { + private final ItemManager itemManager; + + public enum FilterTypes { + CardCMC, + CardColor, + CardFormat, + CardPower, + CardQuestWorld, + CardSet, + CardToughness, + CardType + } + + protected ItemFilter(ItemManager itemManager0) { + this.itemManager = itemManager0; + this.setOpaque(false); + this.addComponents(); + this.add(new FLabel.Builder().text("X").fontSize(10).hoverable(true) + .tooltip("Remove filter").cmdClick(new Command() { + @Override + public void run() { + itemManager.removeFilter(ItemFilter.this); + ItemFilter.this.onRemoved(); + } + }).build(), "top"); + } + + protected void applyChange() { + itemManager.buildFilterPredicate(); + } + + public abstract FilterTypes getType(); + protected abstract void addComponents(); + protected abstract void onRemoved(); +}