From 4be5d02fd7a7a9868ac9ddf5b3fd78fc9e92b338 Mon Sep 17 00:00:00 2001 From: drdev Date: Fri, 23 Aug 2013 01:06:03 +0000 Subject: [PATCH] Make progress on UI for ItemManager filters --- .../java/forge/gui/toolbox/LayoutHelper.java | 10 +++---- .../gui/toolbox/itemmanager/ItemManager.java | 14 +++++---- .../itemmanager/filters/CardCMCFilter.java | 5 ++++ .../itemmanager/filters/CardColorFilter.java | 5 ++++ .../itemmanager/filters/CardFormatFilter.java | 5 ++++ .../itemmanager/filters/CardPowerFilter.java | 5 ++++ .../filters/CardQuestWorldFilter.java | 5 ++++ .../itemmanager/filters/CardSearchFilter.java | 5 ++++ .../itemmanager/filters/CardSetFilter.java | 5 ++++ .../filters/CardToughnessFilter.java | 5 ++++ .../itemmanager/filters/CardTypeFilter.java | 5 ++++ .../itemmanager/filters/ItemFilter.java | 30 +++++++++++-------- 12 files changed, 76 insertions(+), 23 deletions(-) diff --git a/src/main/java/forge/gui/toolbox/LayoutHelper.java b/src/main/java/forge/gui/toolbox/LayoutHelper.java index 9d91ccbae85..5a5e4bb864e 100644 --- a/src/main/java/forge/gui/toolbox/LayoutHelper.java +++ b/src/main/java/forge/gui/toolbox/LayoutHelper.java @@ -16,18 +16,16 @@ public final class LayoutHelper { } /** - * Layout component to fill remaining space of parent + * Layout component to fill remaining vertical space of parent * @param comp */ public void fill(final JComponent comp) { - if (x >= parentWidth) { - newLine(); - } - include(comp, parentWidth - x, parentHeight - y); + newLine(); //start new line if needed + include(comp, parentWidth, parentHeight - y); } /** - * Layout component to fill remaining space of current line + * Layout component to fill remaining horizontal space of current line * @param comp * @param height */ diff --git a/src/main/java/forge/gui/toolbox/itemmanager/ItemManager.java b/src/main/java/forge/gui/toolbox/itemmanager/ItemManager.java index 98ce5ca536b..23defaf7d3d 100644 --- a/src/main/java/forge/gui/toolbox/itemmanager/ItemManager.java +++ b/src/main/java/forge/gui/toolbox/itemmanager/ItemManager.java @@ -136,13 +136,15 @@ public abstract class ItemManager extends JPanel { @Override public void doLayout() { + int number = 0; LayoutHelper helper = new LayoutHelper(this); - /*helper.include(this.btnAddFilter, 30, FTextField.HEIGHT); - helper.include(this.txtSearch, 0.5f, FTextField.HEIGHT); - helper.newLine(); - for (ItemFilter filter : this.orderedFilters) { + /*for (ItemFilter filter : this.orderedFilters) { + filter.updatePanelTitle(++number); helper.fillLine(filter.getPanel(), ItemFilter.PANEL_HEIGHT); - }*/ + } + helper.newLine(); + helper.include(this.btnAddFilter, 30, FTextField.HEIGHT); + helper.include(this.txtSearch, 0.5f, FTextField.HEIGHT);*/ helper.fill(this.tableScroller); } @@ -397,6 +399,7 @@ public abstract class ItemManager extends JPanel { } } classFilters.add(filter); + orderedFilters.add(filter); this.add(filter.getPanel()); this.revalidate(); } @@ -409,6 +412,7 @@ public abstract class ItemManager extends JPanel { if (classFilters.size() == 0) { this.filters.remove(filterClass); } + orderedFilters.remove(filter); this.remove(filter.getPanel()); this.revalidate(); } diff --git a/src/main/java/forge/gui/toolbox/itemmanager/filters/CardCMCFilter.java b/src/main/java/forge/gui/toolbox/itemmanager/filters/CardCMCFilter.java index 5d174ffd896..7b5960e4ddd 100644 --- a/src/main/java/forge/gui/toolbox/itemmanager/filters/CardCMCFilter.java +++ b/src/main/java/forge/gui/toolbox/itemmanager/filters/CardCMCFilter.java @@ -15,6 +15,11 @@ public class CardCMCFilter extends ValueRangeFilter { super(itemManager0); } + @Override + protected String getTitle() { + return "Card CMC"; + } + @Override protected void buildPanel(JPanel panel) { diff --git a/src/main/java/forge/gui/toolbox/itemmanager/filters/CardColorFilter.java b/src/main/java/forge/gui/toolbox/itemmanager/filters/CardColorFilter.java index deb5c15662b..1f27c0ba6c3 100644 --- a/src/main/java/forge/gui/toolbox/itemmanager/filters/CardColorFilter.java +++ b/src/main/java/forge/gui/toolbox/itemmanager/filters/CardColorFilter.java @@ -15,6 +15,11 @@ public class CardColorFilter extends ToggleButtonsFilter { super(itemManager0); } + @Override + protected String getTitle() { + return "Card Color"; + } + @Override protected void buildPanel(JPanel panel) { addToggleButton(panel, StatTypes.WHITE); diff --git a/src/main/java/forge/gui/toolbox/itemmanager/filters/CardFormatFilter.java b/src/main/java/forge/gui/toolbox/itemmanager/filters/CardFormatFilter.java index 45211c76367..440da339bf0 100644 --- a/src/main/java/forge/gui/toolbox/itemmanager/filters/CardFormatFilter.java +++ b/src/main/java/forge/gui/toolbox/itemmanager/filters/CardFormatFilter.java @@ -38,6 +38,11 @@ public class CardFormatFilter extends ListLabelFilter { return true; } + @Override + protected String getTitle() { + return "Card Format"; + } + @Override protected void buildPanel(JPanel panel) { diff --git a/src/main/java/forge/gui/toolbox/itemmanager/filters/CardPowerFilter.java b/src/main/java/forge/gui/toolbox/itemmanager/filters/CardPowerFilter.java index 8e194d3cc2f..1e254f6f6e4 100644 --- a/src/main/java/forge/gui/toolbox/itemmanager/filters/CardPowerFilter.java +++ b/src/main/java/forge/gui/toolbox/itemmanager/filters/CardPowerFilter.java @@ -14,6 +14,11 @@ public class CardPowerFilter extends ValueRangeFilter { super(itemManager0); } + @Override + protected String getTitle() { + return "Card Power"; + } + @Override protected void buildPanel(JPanel panel) { diff --git a/src/main/java/forge/gui/toolbox/itemmanager/filters/CardQuestWorldFilter.java b/src/main/java/forge/gui/toolbox/itemmanager/filters/CardQuestWorldFilter.java index 8737cb95ef8..2ef9e322ea1 100644 --- a/src/main/java/forge/gui/toolbox/itemmanager/filters/CardQuestWorldFilter.java +++ b/src/main/java/forge/gui/toolbox/itemmanager/filters/CardQuestWorldFilter.java @@ -28,6 +28,11 @@ public class CardQuestWorldFilter extends ListLabelFilter { } return existingFilter == null || !((CardQuestWorldFilter)existingFilter).questWorlds.contains(questWorld); } + + @Override + protected String getTitle() { + return "Quest World"; + } /** * Merge the given filter with this filter if possible diff --git a/src/main/java/forge/gui/toolbox/itemmanager/filters/CardSearchFilter.java b/src/main/java/forge/gui/toolbox/itemmanager/filters/CardSearchFilter.java index 12ad0cdba1a..c5b63f1f505 100644 --- a/src/main/java/forge/gui/toolbox/itemmanager/filters/CardSearchFilter.java +++ b/src/main/java/forge/gui/toolbox/itemmanager/filters/CardSearchFilter.java @@ -14,6 +14,11 @@ public class CardSearchFilter extends TextSearchFilter { super(itemManager0, text0); } + @Override + protected String getTitle() { + return "Card Search"; + } + @Override protected void buildPanel(JPanel panel) { diff --git a/src/main/java/forge/gui/toolbox/itemmanager/filters/CardSetFilter.java b/src/main/java/forge/gui/toolbox/itemmanager/filters/CardSetFilter.java index 2dadfd4b01b..2b968073cdc 100644 --- a/src/main/java/forge/gui/toolbox/itemmanager/filters/CardSetFilter.java +++ b/src/main/java/forge/gui/toolbox/itemmanager/filters/CardSetFilter.java @@ -21,6 +21,11 @@ public class CardSetFilter extends ListLabelFilter { super(itemManager0); this.sets.addAll(sets); } + + @Override + protected String getTitle() { + return "Card Set"; + } /** * Merge the given filter with this filter if possible diff --git a/src/main/java/forge/gui/toolbox/itemmanager/filters/CardToughnessFilter.java b/src/main/java/forge/gui/toolbox/itemmanager/filters/CardToughnessFilter.java index a47dc0d07f4..58715bb72d0 100644 --- a/src/main/java/forge/gui/toolbox/itemmanager/filters/CardToughnessFilter.java +++ b/src/main/java/forge/gui/toolbox/itemmanager/filters/CardToughnessFilter.java @@ -14,6 +14,11 @@ public class CardToughnessFilter extends ValueRangeFilter { super(itemManager0); } + @Override + protected String getTitle() { + return "Card Toughness"; + } + @Override protected void buildPanel(JPanel panel) { diff --git a/src/main/java/forge/gui/toolbox/itemmanager/filters/CardTypeFilter.java b/src/main/java/forge/gui/toolbox/itemmanager/filters/CardTypeFilter.java index 7d949f90f42..46323dff851 100644 --- a/src/main/java/forge/gui/toolbox/itemmanager/filters/CardTypeFilter.java +++ b/src/main/java/forge/gui/toolbox/itemmanager/filters/CardTypeFilter.java @@ -15,6 +15,11 @@ public class CardTypeFilter extends ToggleButtonsFilter { super(itemManager0); } + @Override + protected String getTitle() { + return "Card Type"; + } + @Override protected void buildPanel(JPanel panel) { addToggleButton(panel, StatTypes.LAND); diff --git a/src/main/java/forge/gui/toolbox/itemmanager/filters/ItemFilter.java b/src/main/java/forge/gui/toolbox/itemmanager/filters/ItemFilter.java index d4c74fa095c..cc89a3ff12f 100644 --- a/src/main/java/forge/gui/toolbox/itemmanager/filters/ItemFilter.java +++ b/src/main/java/forge/gui/toolbox/itemmanager/filters/ItemFilter.java @@ -1,9 +1,13 @@ package forge.gui.toolbox.itemmanager.filters; +import javax.swing.BorderFactory; +import javax.swing.JLabel; import javax.swing.JPanel; +import net.miginfocom.swing.MigLayout; import forge.Command; import forge.gui.toolbox.FLabel; +import forge.gui.toolbox.FSkin; import forge.gui.toolbox.itemmanager.ItemManager; import forge.item.InventoryItem; @@ -13,8 +17,8 @@ import forge.item.InventoryItem; */ public abstract class ItemFilter { private final ItemManager itemManager; - private int number; private JPanel panel; + private JLabel lblPanelTitle; public static int PANEL_HEIGHT = 30; @@ -22,21 +26,15 @@ public abstract class ItemFilter { this.itemManager = itemManager0; } - public int getNumber() { - return this.number; - } - - public void setNumber(int number0) { - this.number = number0; - } - @SuppressWarnings("serial") public JPanel getPanel() { if (this.panel == null) { - this.panel = new JPanel(); + this.panel = new JPanel(new MigLayout("insets 0, gap 2")); this.panel.setOpaque(false); - - this.buildPanel(panel); + this.panel.setBorder(BorderFactory.createMatteBorder(1, 2, 1, 2, FSkin.getColor(FSkin.Colors.CLR_TEXT))); + + this.lblPanelTitle = new FLabel.Builder().fontSize(10).build(); + this.panel.add(this.lblPanelTitle, "top"); //add button to remove filter this.panel.add(new FLabel.Builder() @@ -51,10 +49,18 @@ public abstract class ItemFilter { ItemFilter.this.onRemoved(); } }).build(), "top"); + + this.buildPanel(panel); } return this.panel; } + public void updatePanelTitle(int number) { + this.lblPanelTitle.setText(number + ". " + this.getTitle()); + } + + protected abstract String getTitle(); + protected void applyChange() { this.itemManager.buildFilterPredicate(); }