mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
Make progress on UI for ItemManager filters
This commit is contained in:
@@ -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
|
* @param comp
|
||||||
*/
|
*/
|
||||||
public void fill(final JComponent comp) {
|
public void fill(final JComponent comp) {
|
||||||
if (x >= parentWidth) {
|
newLine(); //start new line if needed
|
||||||
newLine();
|
include(comp, parentWidth, parentHeight - y);
|
||||||
}
|
|
||||||
include(comp, parentWidth - x, parentHeight - y);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Layout component to fill remaining space of current line
|
* Layout component to fill remaining horizontal space of current line
|
||||||
* @param comp
|
* @param comp
|
||||||
* @param height
|
* @param height
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -136,13 +136,15 @@ public abstract class ItemManager<T extends InventoryItem> extends JPanel {
|
|||||||
@Override
|
@Override
|
||||||
public void doLayout()
|
public void doLayout()
|
||||||
{
|
{
|
||||||
|
int number = 0;
|
||||||
LayoutHelper helper = new LayoutHelper(this);
|
LayoutHelper helper = new LayoutHelper(this);
|
||||||
/*helper.include(this.btnAddFilter, 30, FTextField.HEIGHT);
|
/*for (ItemFilter<T> filter : this.orderedFilters) {
|
||||||
helper.include(this.txtSearch, 0.5f, FTextField.HEIGHT);
|
filter.updatePanelTitle(++number);
|
||||||
helper.newLine();
|
|
||||||
for (ItemFilter<T> filter : this.orderedFilters) {
|
|
||||||
helper.fillLine(filter.getPanel(), ItemFilter.PANEL_HEIGHT);
|
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);
|
helper.fill(this.tableScroller);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -397,6 +399,7 @@ public abstract class ItemManager<T extends InventoryItem> extends JPanel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
classFilters.add(filter);
|
classFilters.add(filter);
|
||||||
|
orderedFilters.add(filter);
|
||||||
this.add(filter.getPanel());
|
this.add(filter.getPanel());
|
||||||
this.revalidate();
|
this.revalidate();
|
||||||
}
|
}
|
||||||
@@ -409,6 +412,7 @@ public abstract class ItemManager<T extends InventoryItem> extends JPanel {
|
|||||||
if (classFilters.size() == 0) {
|
if (classFilters.size() == 0) {
|
||||||
this.filters.remove(filterClass);
|
this.filters.remove(filterClass);
|
||||||
}
|
}
|
||||||
|
orderedFilters.remove(filter);
|
||||||
this.remove(filter.getPanel());
|
this.remove(filter.getPanel());
|
||||||
this.revalidate();
|
this.revalidate();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,11 @@ public class CardCMCFilter extends ValueRangeFilter<PaperCard> {
|
|||||||
super(itemManager0);
|
super(itemManager0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getTitle() {
|
||||||
|
return "Card CMC";
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void buildPanel(JPanel panel) {
|
protected void buildPanel(JPanel panel) {
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,11 @@ public class CardColorFilter extends ToggleButtonsFilter<PaperCard> {
|
|||||||
super(itemManager0);
|
super(itemManager0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getTitle() {
|
||||||
|
return "Card Color";
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void buildPanel(JPanel panel) {
|
protected void buildPanel(JPanel panel) {
|
||||||
addToggleButton(panel, StatTypes.WHITE);
|
addToggleButton(panel, StatTypes.WHITE);
|
||||||
|
|||||||
@@ -38,6 +38,11 @@ public class CardFormatFilter extends ListLabelFilter<PaperCard> {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getTitle() {
|
||||||
|
return "Card Format";
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void buildPanel(JPanel panel) {
|
protected void buildPanel(JPanel panel) {
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,11 @@ public class CardPowerFilter extends ValueRangeFilter<PaperCard> {
|
|||||||
super(itemManager0);
|
super(itemManager0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getTitle() {
|
||||||
|
return "Card Power";
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void buildPanel(JPanel panel) {
|
protected void buildPanel(JPanel panel) {
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,11 @@ public class CardQuestWorldFilter extends ListLabelFilter<PaperCard> {
|
|||||||
}
|
}
|
||||||
return existingFilter == null || !((CardQuestWorldFilter)existingFilter).questWorlds.contains(questWorld);
|
return existingFilter == null || !((CardQuestWorldFilter)existingFilter).questWorlds.contains(questWorld);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getTitle() {
|
||||||
|
return "Quest World";
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Merge the given filter with this filter if possible
|
* Merge the given filter with this filter if possible
|
||||||
|
|||||||
@@ -14,6 +14,11 @@ public class CardSearchFilter extends TextSearchFilter<PaperCard> {
|
|||||||
super(itemManager0, text0);
|
super(itemManager0, text0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getTitle() {
|
||||||
|
return "Card Search";
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void buildPanel(JPanel panel) {
|
protected void buildPanel(JPanel panel) {
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,11 @@ public class CardSetFilter extends ListLabelFilter<PaperCard> {
|
|||||||
super(itemManager0);
|
super(itemManager0);
|
||||||
this.sets.addAll(sets);
|
this.sets.addAll(sets);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getTitle() {
|
||||||
|
return "Card Set";
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Merge the given filter with this filter if possible
|
* Merge the given filter with this filter if possible
|
||||||
|
|||||||
@@ -14,6 +14,11 @@ public class CardToughnessFilter extends ValueRangeFilter<PaperCard> {
|
|||||||
super(itemManager0);
|
super(itemManager0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getTitle() {
|
||||||
|
return "Card Toughness";
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void buildPanel(JPanel panel) {
|
protected void buildPanel(JPanel panel) {
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,11 @@ public class CardTypeFilter extends ToggleButtonsFilter<PaperCard> {
|
|||||||
super(itemManager0);
|
super(itemManager0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getTitle() {
|
||||||
|
return "Card Type";
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void buildPanel(JPanel panel) {
|
protected void buildPanel(JPanel panel) {
|
||||||
addToggleButton(panel, StatTypes.LAND);
|
addToggleButton(panel, StatTypes.LAND);
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
package forge.gui.toolbox.itemmanager.filters;
|
package forge.gui.toolbox.itemmanager.filters;
|
||||||
|
|
||||||
|
import javax.swing.BorderFactory;
|
||||||
|
import javax.swing.JLabel;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
|
|
||||||
|
import net.miginfocom.swing.MigLayout;
|
||||||
import forge.Command;
|
import forge.Command;
|
||||||
import forge.gui.toolbox.FLabel;
|
import forge.gui.toolbox.FLabel;
|
||||||
|
import forge.gui.toolbox.FSkin;
|
||||||
import forge.gui.toolbox.itemmanager.ItemManager;
|
import forge.gui.toolbox.itemmanager.ItemManager;
|
||||||
import forge.item.InventoryItem;
|
import forge.item.InventoryItem;
|
||||||
|
|
||||||
@@ -13,8 +17,8 @@ import forge.item.InventoryItem;
|
|||||||
*/
|
*/
|
||||||
public abstract class ItemFilter<T extends InventoryItem> {
|
public abstract class ItemFilter<T extends InventoryItem> {
|
||||||
private final ItemManager<T> itemManager;
|
private final ItemManager<T> itemManager;
|
||||||
private int number;
|
|
||||||
private JPanel panel;
|
private JPanel panel;
|
||||||
|
private JLabel lblPanelTitle;
|
||||||
|
|
||||||
public static int PANEL_HEIGHT = 30;
|
public static int PANEL_HEIGHT = 30;
|
||||||
|
|
||||||
@@ -22,21 +26,15 @@ public abstract class ItemFilter<T extends InventoryItem> {
|
|||||||
this.itemManager = itemManager0;
|
this.itemManager = itemManager0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getNumber() {
|
|
||||||
return this.number;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setNumber(int number0) {
|
|
||||||
this.number = number0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
public JPanel getPanel() {
|
public JPanel getPanel() {
|
||||||
if (this.panel == null) {
|
if (this.panel == null) {
|
||||||
this.panel = new JPanel();
|
this.panel = new JPanel(new MigLayout("insets 0, gap 2"));
|
||||||
this.panel.setOpaque(false);
|
this.panel.setOpaque(false);
|
||||||
|
this.panel.setBorder(BorderFactory.createMatteBorder(1, 2, 1, 2, FSkin.getColor(FSkin.Colors.CLR_TEXT)));
|
||||||
this.buildPanel(panel);
|
|
||||||
|
this.lblPanelTitle = new FLabel.Builder().fontSize(10).build();
|
||||||
|
this.panel.add(this.lblPanelTitle, "top");
|
||||||
|
|
||||||
//add button to remove filter
|
//add button to remove filter
|
||||||
this.panel.add(new FLabel.Builder()
|
this.panel.add(new FLabel.Builder()
|
||||||
@@ -51,10 +49,18 @@ public abstract class ItemFilter<T extends InventoryItem> {
|
|||||||
ItemFilter.this.onRemoved();
|
ItemFilter.this.onRemoved();
|
||||||
}
|
}
|
||||||
}).build(), "top");
|
}).build(), "top");
|
||||||
|
|
||||||
|
this.buildPanel(panel);
|
||||||
}
|
}
|
||||||
return this.panel;
|
return this.panel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void updatePanelTitle(int number) {
|
||||||
|
this.lblPanelTitle.setText(number + ". " + this.getTitle());
|
||||||
|
}
|
||||||
|
|
||||||
|
protected abstract String getTitle();
|
||||||
|
|
||||||
protected void applyChange() {
|
protected void applyChange() {
|
||||||
this.itemManager.buildFilterPredicate();
|
this.itemManager.buildFilterPredicate();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user