mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +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
|
||||
*/
|
||||
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
|
||||
*/
|
||||
|
||||
@@ -136,13 +136,15 @@ public abstract class ItemManager<T extends InventoryItem> 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<T> filter : this.orderedFilters) {
|
||||
/*for (ItemFilter<T> 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<T extends InventoryItem> extends JPanel {
|
||||
}
|
||||
}
|
||||
classFilters.add(filter);
|
||||
orderedFilters.add(filter);
|
||||
this.add(filter.getPanel());
|
||||
this.revalidate();
|
||||
}
|
||||
@@ -409,6 +412,7 @@ public abstract class ItemManager<T extends InventoryItem> extends JPanel {
|
||||
if (classFilters.size() == 0) {
|
||||
this.filters.remove(filterClass);
|
||||
}
|
||||
orderedFilters.remove(filter);
|
||||
this.remove(filter.getPanel());
|
||||
this.revalidate();
|
||||
}
|
||||
|
||||
@@ -15,6 +15,11 @@ public class CardCMCFilter extends ValueRangeFilter<PaperCard> {
|
||||
super(itemManager0);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTitle() {
|
||||
return "Card CMC";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void buildPanel(JPanel panel) {
|
||||
|
||||
|
||||
@@ -15,6 +15,11 @@ public class CardColorFilter extends ToggleButtonsFilter<PaperCard> {
|
||||
super(itemManager0);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTitle() {
|
||||
return "Card Color";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void buildPanel(JPanel panel) {
|
||||
addToggleButton(panel, StatTypes.WHITE);
|
||||
|
||||
@@ -38,6 +38,11 @@ public class CardFormatFilter extends ListLabelFilter<PaperCard> {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTitle() {
|
||||
return "Card Format";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void buildPanel(JPanel panel) {
|
||||
|
||||
|
||||
@@ -14,6 +14,11 @@ public class CardPowerFilter extends ValueRangeFilter<PaperCard> {
|
||||
super(itemManager0);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTitle() {
|
||||
return "Card Power";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void buildPanel(JPanel panel) {
|
||||
|
||||
|
||||
@@ -29,6 +29,11 @@ public class CardQuestWorldFilter extends ListLabelFilter<PaperCard> {
|
||||
return existingFilter == null || !((CardQuestWorldFilter)existingFilter).questWorlds.contains(questWorld);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTitle() {
|
||||
return "Quest World";
|
||||
}
|
||||
|
||||
/**
|
||||
* Merge the given filter with this filter if possible
|
||||
* @param filter
|
||||
|
||||
@@ -14,6 +14,11 @@ public class CardSearchFilter extends TextSearchFilter<PaperCard> {
|
||||
super(itemManager0, text0);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTitle() {
|
||||
return "Card Search";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void buildPanel(JPanel panel) {
|
||||
|
||||
|
||||
@@ -22,6 +22,11 @@ public class CardSetFilter extends ListLabelFilter<PaperCard> {
|
||||
this.sets.addAll(sets);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTitle() {
|
||||
return "Card Set";
|
||||
}
|
||||
|
||||
/**
|
||||
* Merge the given filter with this filter if possible
|
||||
* @param filter
|
||||
|
||||
@@ -14,6 +14,11 @@ public class CardToughnessFilter extends ValueRangeFilter<PaperCard> {
|
||||
super(itemManager0);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTitle() {
|
||||
return "Card Toughness";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void buildPanel(JPanel panel) {
|
||||
|
||||
|
||||
@@ -15,6 +15,11 @@ public class CardTypeFilter extends ToggleButtonsFilter<PaperCard> {
|
||||
super(itemManager0);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTitle() {
|
||||
return "Card Type";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void buildPanel(JPanel panel) {
|
||||
addToggleButton(panel, StatTypes.LAND);
|
||||
|
||||
@@ -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<T extends InventoryItem> {
|
||||
private final ItemManager<T> itemManager;
|
||||
private int number;
|
||||
private JPanel panel;
|
||||
private JLabel lblPanelTitle;
|
||||
|
||||
public static int PANEL_HEIGHT = 30;
|
||||
|
||||
@@ -22,21 +26,15 @@ public abstract class ItemFilter<T extends InventoryItem> {
|
||||
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.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
|
||||
this.panel.add(new FLabel.Builder()
|
||||
@@ -51,10 +49,18 @@ public abstract class ItemFilter<T extends InventoryItem> {
|
||||
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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user