mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 10:18:01 +00:00
myk's code contributions (vol. 1)
- adds tooltips for the filter checkboxes (issue 657)
- ensures the filter checkboxes are always in the same order
- puts all labels and checkboxes in "official" order from the mtg rules book:
color order: WHITE, BLUE, BLACK, RED, GREEN, COLORLESS, MULTICOLOR
type order: LAND, ARTIFACT, CREATURE, ENCHANTMENT, PLANESWALKER, INSTANT, SORCERY
This commit is contained in:
@@ -34,36 +34,39 @@ import forge.util.PredicateString.StringOp;
|
||||
* Static factory; holds blocks of form elements and predicates
|
||||
* which are used in various editing environments.
|
||||
* <br><br>
|
||||
* <i>(S at beginning of class name denotes a static factory.)</i>
|
||||
*/
|
||||
public class SFilterUtil {
|
||||
/** An enum to reference checkbox objects in their respective maps. */
|
||||
private enum FilterProperty { /** */
|
||||
BLACK, /** */
|
||||
BLUE, /** */
|
||||
COLORLESS, /** */
|
||||
GREEN, /** */
|
||||
MULTICOLOR, /** */
|
||||
RED, /** */
|
||||
WHITE, /** */
|
||||
|
||||
ARTIFACT, /** */
|
||||
CREATURE, /** */
|
||||
ENCHANTMENT, /** */
|
||||
INSTANT, /** */
|
||||
LAND, /** */
|
||||
PLANESWALKER, /** */
|
||||
SORCERY
|
||||
}
|
||||
|
||||
private static final Map<FilterProperty, ChbPnl> MAP_COLOR_CHECKBOXES =
|
||||
new HashMap<FilterProperty, ChbPnl>();
|
||||
|
||||
private static final Map<FilterProperty, ChbPnl> MAP_TYPE_CHECKBOXES =
|
||||
new HashMap<FilterProperty, ChbPnl>();
|
||||
|
||||
/**
|
||||
|
||||
* <i>(S at beginning of class name denotes a static factory.)</i>
|
||||
*/
|
||||
public class SFilterUtil {
|
||||
/** An enum to reference checkbox objects in the color filter map. */
|
||||
private enum ColorFilterProperty {
|
||||
WHITE,
|
||||
BLUE,
|
||||
BLACK,
|
||||
RED,
|
||||
GREEN,
|
||||
COLORLESS,
|
||||
MULTICOLOR
|
||||
}
|
||||
|
||||
/** An enum to reference checkbox objects in the type filter map. */
|
||||
private enum TypeFilterProperty {
|
||||
LAND,
|
||||
ARTIFACT,
|
||||
CREATURE,
|
||||
ENCHANTMENT,
|
||||
PLANESWALKER,
|
||||
INSTANT,
|
||||
SORCERY
|
||||
}
|
||||
|
||||
private static final Map<ColorFilterProperty, ChbPnl> MAP_COLOR_CHECKBOXES =
|
||||
new HashMap<ColorFilterProperty, ChbPnl>();
|
||||
|
||||
private static final Map<TypeFilterProperty, ChbPnl> MAP_TYPE_CHECKBOXES =
|
||||
new HashMap<TypeFilterProperty, ChbPnl>();
|
||||
|
||||
/**
|
||||
|
||||
*/
|
||||
private static boolean preventFiltering = false;
|
||||
|
||||
@@ -94,85 +97,81 @@ public class SFilterUtil {
|
||||
*
|
||||
* @return {@link javax.swing.JPanel}
|
||||
*/
|
||||
public static JPanel populateColorFilters() {
|
||||
MAP_COLOR_CHECKBOXES.clear();
|
||||
|
||||
MAP_COLOR_CHECKBOXES.put(FilterProperty.BLACK,
|
||||
new ChbPnl(SEditorUtil.ICO_BLACK.getImage()));
|
||||
MAP_COLOR_CHECKBOXES.put(FilterProperty.MULTICOLOR,
|
||||
new ChbPnl(SEditorUtil.ICO_MULTI.getImage()));
|
||||
MAP_COLOR_CHECKBOXES.put(FilterProperty.BLUE,
|
||||
new ChbPnl(SEditorUtil.ICO_BLUE.getImage()));
|
||||
MAP_COLOR_CHECKBOXES.put(FilterProperty.BLACK,
|
||||
new ChbPnl(SEditorUtil.ICO_BLACK.getImage()));
|
||||
MAP_COLOR_CHECKBOXES.put(FilterProperty.GREEN,
|
||||
new ChbPnl(SEditorUtil.ICO_GREEN.getImage()));
|
||||
MAP_COLOR_CHECKBOXES.put(FilterProperty.RED,
|
||||
new ChbPnl(SEditorUtil.ICO_RED.getImage()));
|
||||
MAP_COLOR_CHECKBOXES.put(FilterProperty.WHITE,
|
||||
new ChbPnl(SEditorUtil.ICO_WHITE.getImage()));
|
||||
MAP_COLOR_CHECKBOXES.put(FilterProperty.COLORLESS,
|
||||
new ChbPnl(SEditorUtil.ICO_COLORLESS.getImage()));
|
||||
|
||||
|
||||
final JPanel pnl = new JPanel(new WrapLayout(SwingConstants.CENTER, 10, 5));
|
||||
pnl.setOpaque(false);
|
||||
|
||||
for (FilterProperty p : MAP_COLOR_CHECKBOXES.keySet()) {
|
||||
pnl.add(MAP_COLOR_CHECKBOXES.get(p));
|
||||
}
|
||||
return pnl;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fills and returns a JPanel with checkboxes for color filter set.
|
||||
*
|
||||
* @return {@link javax.swing.JPanel}
|
||||
*/
|
||||
public static JPanel populateTypeFilters() {
|
||||
MAP_TYPE_CHECKBOXES.clear();
|
||||
|
||||
MAP_TYPE_CHECKBOXES.put(FilterProperty.ARTIFACT,
|
||||
new ChbPnl(SEditorUtil.ICO_ARTIFACT.getImage()));
|
||||
MAP_TYPE_CHECKBOXES.put(FilterProperty.CREATURE,
|
||||
new ChbPnl(SEditorUtil.ICO_CREATURE.getImage()));
|
||||
MAP_TYPE_CHECKBOXES.put(FilterProperty.ENCHANTMENT,
|
||||
new ChbPnl(SEditorUtil.ICO_ENCHANTMENT.getImage()));
|
||||
MAP_TYPE_CHECKBOXES.put(FilterProperty.INSTANT,
|
||||
new ChbPnl(SEditorUtil.ICO_INSTANT.getImage()));
|
||||
MAP_TYPE_CHECKBOXES.put(FilterProperty.LAND,
|
||||
new ChbPnl(SEditorUtil.ICO_LAND.getImage()));
|
||||
MAP_TYPE_CHECKBOXES.put(FilterProperty.PLANESWALKER,
|
||||
new ChbPnl(SEditorUtil.ICO_PLANESWALKER.getImage()));
|
||||
MAP_TYPE_CHECKBOXES.put(FilterProperty.SORCERY,
|
||||
new ChbPnl(SEditorUtil.ICO_SORCERY.getImage()));
|
||||
|
||||
|
||||
final JPanel pnl = new JPanel(new WrapLayout(SwingConstants.CENTER, 10, 5));
|
||||
pnl.setOpaque(false);
|
||||
|
||||
for (FilterProperty p : MAP_TYPE_CHECKBOXES.keySet()) {
|
||||
pnl.add(MAP_TYPE_CHECKBOXES.get(p));
|
||||
}
|
||||
return pnl;
|
||||
}
|
||||
|
||||
/** Turns all type checkboxes off or on.
|
||||
* @param select0   boolean */
|
||||
public static void toggleTypeCheckboxes(final boolean select0) {
|
||||
for (FilterProperty p : MAP_TYPE_CHECKBOXES.keySet()) {
|
||||
MAP_TYPE_CHECKBOXES.get(p).getCheckBox().setSelected(select0);
|
||||
}
|
||||
}
|
||||
|
||||
/** Turns all type checkboxes off or on.
|
||||
* @param select0   boolean */
|
||||
public static void toggleColorCheckboxes(final boolean select0) {
|
||||
for (FilterProperty p : MAP_COLOR_CHECKBOXES.keySet()) {
|
||||
MAP_COLOR_CHECKBOXES.get(p).getCheckBox().setSelected(select0);
|
||||
}
|
||||
public static JPanel populateColorFilters() {
|
||||
MAP_COLOR_CHECKBOXES.clear();
|
||||
|
||||
MAP_COLOR_CHECKBOXES.put(ColorFilterProperty.WHITE,
|
||||
new ChbPnl(SEditorUtil.ICO_WHITE.getImage(), "White Cards"));
|
||||
MAP_COLOR_CHECKBOXES.put(ColorFilterProperty.BLUE,
|
||||
new ChbPnl(SEditorUtil.ICO_BLUE.getImage(), "Blue Cards"));
|
||||
MAP_COLOR_CHECKBOXES.put(ColorFilterProperty.BLACK,
|
||||
new ChbPnl(SEditorUtil.ICO_BLACK.getImage(), "Black Cards"));
|
||||
MAP_COLOR_CHECKBOXES.put(ColorFilterProperty.RED,
|
||||
new ChbPnl(SEditorUtil.ICO_RED.getImage(), "Red Cards"));
|
||||
MAP_COLOR_CHECKBOXES.put(ColorFilterProperty.GREEN,
|
||||
new ChbPnl(SEditorUtil.ICO_GREEN.getImage(), "Green Cards"));
|
||||
MAP_COLOR_CHECKBOXES.put(ColorFilterProperty.COLORLESS,
|
||||
new ChbPnl(SEditorUtil.ICO_COLORLESS.getImage(), "Colorless Cards"));
|
||||
MAP_COLOR_CHECKBOXES.put(ColorFilterProperty.MULTICOLOR,
|
||||
new ChbPnl(SEditorUtil.ICO_MULTI.getImage(), "Multicolor Cards"));
|
||||
|
||||
final JPanel pnl = new JPanel(new WrapLayout(SwingConstants.CENTER, 10, 5));
|
||||
pnl.setOpaque(false);
|
||||
|
||||
for (ColorFilterProperty p : ColorFilterProperty.values()) {
|
||||
pnl.add(MAP_COLOR_CHECKBOXES.get(p));
|
||||
}
|
||||
return pnl;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fills and returns a JPanel with checkboxes for type filter set.
|
||||
*
|
||||
* @return {@link javax.swing.JPanel}
|
||||
*/
|
||||
public static JPanel populateTypeFilters() {
|
||||
MAP_TYPE_CHECKBOXES.clear();
|
||||
|
||||
MAP_TYPE_CHECKBOXES.put(TypeFilterProperty.LAND,
|
||||
new ChbPnl(SEditorUtil.ICO_LAND.getImage(), "Land Cards"));
|
||||
MAP_TYPE_CHECKBOXES.put(TypeFilterProperty.ARTIFACT,
|
||||
new ChbPnl(SEditorUtil.ICO_ARTIFACT.getImage(), "Artifact Cards"));
|
||||
MAP_TYPE_CHECKBOXES.put(TypeFilterProperty.CREATURE,
|
||||
new ChbPnl(SEditorUtil.ICO_CREATURE.getImage(), "Creature Cards"));
|
||||
MAP_TYPE_CHECKBOXES.put(TypeFilterProperty.ENCHANTMENT,
|
||||
new ChbPnl(SEditorUtil.ICO_ENCHANTMENT.getImage(), "Enchantment Cards"));
|
||||
MAP_TYPE_CHECKBOXES.put(TypeFilterProperty.PLANESWALKER,
|
||||
new ChbPnl(SEditorUtil.ICO_PLANESWALKER.getImage(), "Planeswalker Cards"));
|
||||
MAP_TYPE_CHECKBOXES.put(TypeFilterProperty.INSTANT,
|
||||
new ChbPnl(SEditorUtil.ICO_INSTANT.getImage(), "Instant Cards"));
|
||||
MAP_TYPE_CHECKBOXES.put(TypeFilterProperty.SORCERY,
|
||||
new ChbPnl(SEditorUtil.ICO_SORCERY.getImage(), "Sorcery Cards"));
|
||||
|
||||
final JPanel pnl = new JPanel(new WrapLayout(SwingConstants.CENTER, 10, 5));
|
||||
pnl.setOpaque(false);
|
||||
|
||||
for (TypeFilterProperty p : TypeFilterProperty.values()) {
|
||||
pnl.add(MAP_TYPE_CHECKBOXES.get(p));
|
||||
}
|
||||
return pnl;
|
||||
}
|
||||
|
||||
/** Turns all type checkboxes off or on.
|
||||
* @param select0   boolean */
|
||||
public static void toggleTypeCheckboxes(final boolean select0) {
|
||||
for (ChbPnl p : MAP_TYPE_CHECKBOXES.values()) {
|
||||
p.getCheckBox().setSelected(select0);
|
||||
}
|
||||
}
|
||||
|
||||
/** Turns all color checkboxes off or on.
|
||||
* @param select0   boolean */
|
||||
public static void toggleColorCheckboxes(final boolean select0) {
|
||||
for (ChbPnl p : MAP_COLOR_CHECKBOXES.values()) {
|
||||
p.getCheckBox().setSelected(select0);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Assembles checkboxes for color and returns a filter predicate.
|
||||
* <br><br>
|
||||
@@ -182,23 +181,22 @@ public class SFilterUtil {
|
||||
*/
|
||||
public static Predicate<CardPrinted> buildColorFilter() {
|
||||
if (MAP_COLOR_CHECKBOXES.isEmpty()) { return Predicates.alwaysTrue(); }
|
||||
|
||||
final List<Predicate<CardRules>> colors = new ArrayList<Predicate<CardRules>>();
|
||||
|
||||
if (MAP_COLOR_CHECKBOXES.get(FilterProperty.BLACK).getCheckBox().isSelected()) { colors.add(CardRulesPredicates.Presets.IS_BLACK); }
|
||||
if (MAP_COLOR_CHECKBOXES.get(FilterProperty.BLUE).getCheckBox().isSelected()) { colors.add(CardRulesPredicates.Presets.IS_BLUE); }
|
||||
if (MAP_COLOR_CHECKBOXES.get(FilterProperty.GREEN).getCheckBox().isSelected()) { colors.add(CardRulesPredicates.Presets.IS_GREEN); }
|
||||
if (MAP_COLOR_CHECKBOXES.get(FilterProperty.RED).getCheckBox().isSelected()) { colors.add(CardRulesPredicates.Presets.IS_RED); }
|
||||
if (MAP_COLOR_CHECKBOXES.get(FilterProperty.WHITE).getCheckBox().isSelected()) { colors.add(CardRulesPredicates.Presets.IS_WHITE); }
|
||||
if (MAP_COLOR_CHECKBOXES.get(FilterProperty.COLORLESS).getCheckBox().isSelected()) { colors.add(CardRulesPredicates.Presets.IS_COLORLESS); }
|
||||
|
||||
final Predicate<CardRules> preColors = colors.size() == 6 ? null : Predicates.or(colors);
|
||||
|
||||
|
||||
boolean wantMulticolor = MAP_COLOR_CHECKBOXES.get(FilterProperty.MULTICOLOR).getCheckBox().isSelected();
|
||||
final Predicate<CardRules> preExceptMulti = wantMulticolor ? null : Predicates.not(CardRulesPredicates.Presets.IS_MULTICOLOR);
|
||||
|
||||
Predicate<CardRules> preFinal = colors.isEmpty() && wantMulticolor ? CardRulesPredicates.Presets.IS_MULTICOLOR : optimizedAnd(preExceptMulti, preColors);
|
||||
|
||||
final List<Predicate<CardRules>> colors = new ArrayList<Predicate<CardRules>>();
|
||||
|
||||
if (MAP_COLOR_CHECKBOXES.get(ColorFilterProperty.WHITE).getCheckBox().isSelected()) { colors.add(CardRulesPredicates.Presets.IS_WHITE); }
|
||||
if (MAP_COLOR_CHECKBOXES.get(ColorFilterProperty.BLUE).getCheckBox().isSelected()) { colors.add(CardRulesPredicates.Presets.IS_BLUE); }
|
||||
if (MAP_COLOR_CHECKBOXES.get(ColorFilterProperty.BLACK).getCheckBox().isSelected()) { colors.add(CardRulesPredicates.Presets.IS_BLACK); }
|
||||
if (MAP_COLOR_CHECKBOXES.get(ColorFilterProperty.RED).getCheckBox().isSelected()) { colors.add(CardRulesPredicates.Presets.IS_RED); }
|
||||
if (MAP_COLOR_CHECKBOXES.get(ColorFilterProperty.GREEN).getCheckBox().isSelected()) { colors.add(CardRulesPredicates.Presets.IS_GREEN); }
|
||||
if (MAP_COLOR_CHECKBOXES.get(ColorFilterProperty.COLORLESS).getCheckBox().isSelected()) { colors.add(CardRulesPredicates.Presets.IS_COLORLESS); }
|
||||
|
||||
final Predicate<CardRules> preColors = colors.size() == 6 ? null : Predicates.or(colors);
|
||||
|
||||
boolean wantMulticolor = MAP_COLOR_CHECKBOXES.get(ColorFilterProperty.MULTICOLOR).getCheckBox().isSelected();
|
||||
final Predicate<CardRules> preExceptMulti = wantMulticolor ? null : Predicates.not(CardRulesPredicates.Presets.IS_MULTICOLOR);
|
||||
|
||||
Predicate<CardRules> preFinal = colors.isEmpty() && wantMulticolor ? CardRulesPredicates.Presets.IS_MULTICOLOR : optimizedAnd(preExceptMulti, preColors);
|
||||
|
||||
if (null == preFinal) {
|
||||
return Predicates.alwaysTrue();
|
||||
@@ -236,19 +234,19 @@ public class SFilterUtil {
|
||||
* @return Predicate<CardPrinted>
|
||||
*/
|
||||
public static Predicate<CardPrinted> buildTypeFilter() {
|
||||
if (MAP_TYPE_CHECKBOXES.isEmpty()) { return Predicates.alwaysTrue(); }
|
||||
|
||||
final List<Predicate<CardRules>> ors = new ArrayList<Predicate<CardRules>>();
|
||||
if (MAP_TYPE_CHECKBOXES.get(FilterProperty.ARTIFACT).getCheckBox().isSelected()) { ors.add(CardRulesPredicates.Presets.IS_ARTIFACT); }
|
||||
if (MAP_TYPE_CHECKBOXES.get(FilterProperty.CREATURE).getCheckBox().isSelected()) { ors.add(CardRulesPredicates.Presets.IS_CREATURE); }
|
||||
if (MAP_TYPE_CHECKBOXES.get(FilterProperty.ENCHANTMENT).getCheckBox().isSelected()) { ors.add(CardRulesPredicates.Presets.IS_ENCHANTMENT); }
|
||||
if (MAP_TYPE_CHECKBOXES.get(FilterProperty.INSTANT).getCheckBox().isSelected()) { ors.add(CardRulesPredicates.Presets.IS_INSTANT); }
|
||||
if (MAP_TYPE_CHECKBOXES.get(FilterProperty.LAND).getCheckBox().isSelected()) { ors.add(CardRulesPredicates.Presets.IS_LAND); }
|
||||
if (MAP_TYPE_CHECKBOXES.get(FilterProperty.PLANESWALKER).getCheckBox().isSelected()) { ors.add(CardRulesPredicates.Presets.IS_PLANESWALKER); }
|
||||
if (MAP_TYPE_CHECKBOXES.get(FilterProperty.SORCERY).getCheckBox().isSelected()) { ors.add(CardRulesPredicates.Presets.IS_SORCERY); }
|
||||
|
||||
if (ors.size() == 7) {
|
||||
return Predicates.alwaysTrue();
|
||||
if (MAP_TYPE_CHECKBOXES.isEmpty()) { return Predicates.alwaysTrue(); }
|
||||
|
||||
final List<Predicate<CardRules>> ors = new ArrayList<Predicate<CardRules>>();
|
||||
if (MAP_TYPE_CHECKBOXES.get(TypeFilterProperty.LAND).getCheckBox().isSelected()) { ors.add(CardRulesPredicates.Presets.IS_LAND); }
|
||||
if (MAP_TYPE_CHECKBOXES.get(TypeFilterProperty.ARTIFACT).getCheckBox().isSelected()) { ors.add(CardRulesPredicates.Presets.IS_ARTIFACT); }
|
||||
if (MAP_TYPE_CHECKBOXES.get(TypeFilterProperty.CREATURE).getCheckBox().isSelected()) { ors.add(CardRulesPredicates.Presets.IS_CREATURE); }
|
||||
if (MAP_TYPE_CHECKBOXES.get(TypeFilterProperty.ENCHANTMENT).getCheckBox().isSelected()) { ors.add(CardRulesPredicates.Presets.IS_ENCHANTMENT); }
|
||||
if (MAP_TYPE_CHECKBOXES.get(TypeFilterProperty.PLANESWALKER).getCheckBox().isSelected()) { ors.add(CardRulesPredicates.Presets.IS_PLANESWALKER); }
|
||||
if (MAP_TYPE_CHECKBOXES.get(TypeFilterProperty.INSTANT).getCheckBox().isSelected()) { ors.add(CardRulesPredicates.Presets.IS_INSTANT); }
|
||||
if (MAP_TYPE_CHECKBOXES.get(TypeFilterProperty.SORCERY).getCheckBox().isSelected()) { ors.add(CardRulesPredicates.Presets.IS_SORCERY); }
|
||||
|
||||
if (ors.size() == 7) {
|
||||
return Predicates.alwaysTrue();
|
||||
}
|
||||
|
||||
return Predicates.compose(Predicates.or(ors), CardPrinted.FN_GET_RULES);
|
||||
@@ -368,20 +366,21 @@ public class SFilterUtil {
|
||||
*/
|
||||
@SuppressWarnings("serial")
|
||||
private static class ChbPnl extends JPanel implements ItemListener {
|
||||
private final JCheckBox checkBox = new JCheckBox();
|
||||
private final Image img;
|
||||
|
||||
public ChbPnl(final Image img0) {
|
||||
super();
|
||||
this.img = img0;
|
||||
this.setOpaque(false);
|
||||
private final JCheckBox checkBox = new JCheckBox();
|
||||
private final Image img;
|
||||
|
||||
public ChbPnl(final Image img0, final String tooltip) {
|
||||
super();
|
||||
this.img = img0;
|
||||
this.setOpaque(false);
|
||||
checkBox.setBorder(new EmptyBorder(0, 20, 0, 0));
|
||||
checkBox.setOpaque(false);
|
||||
checkBox.setSelected(true);
|
||||
checkBox.addItemListener(this);
|
||||
add(checkBox);
|
||||
|
||||
this.addMouseListener(new MouseAdapter() {
|
||||
checkBox.setOpaque(false);
|
||||
checkBox.setSelected(true);
|
||||
checkBox.addItemListener(this);
|
||||
checkBox.setToolTipText(tooltip);
|
||||
add(checkBox);
|
||||
|
||||
this.addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(final MouseEvent me) {
|
||||
checkBox.doClick();
|
||||
|
||||
@@ -100,25 +100,25 @@ public enum VCardCatalog implements IVDoc<CCardCatalog>, ITableContainer {
|
||||
|
||||
pnlStats.setOpaque(false);
|
||||
pnlStats.setLayout(new MigLayout("insets 0, gap 5px, ax center, wrap 7"));
|
||||
|
||||
final String constraints = "w 57px!, h 20px!";
|
||||
pnlStats.add(lblTotal, constraints);
|
||||
pnlStats.add(lblBlack, constraints);
|
||||
pnlStats.add(lblBlue, constraints);
|
||||
pnlStats.add(lblGreen, constraints);
|
||||
pnlStats.add(lblRed, constraints);
|
||||
pnlStats.add(lblWhite, constraints);
|
||||
pnlStats.add(lblColorless, constraints);
|
||||
|
||||
pnlStats.add(lblArtifact, constraints);
|
||||
pnlStats.add(lblCreature, constraints);
|
||||
pnlStats.add(lblEnchantment, constraints);
|
||||
pnlStats.add(lblInstant, constraints);
|
||||
pnlStats.add(lblLand, constraints);
|
||||
pnlStats.add(lblPlaneswalker, constraints);
|
||||
pnlStats.add(lblSorcery, constraints);
|
||||
|
||||
pnlAddButtons.setOpaque(false);
|
||||
|
||||
final String constraints = "w 57px!, h 20px!";
|
||||
pnlStats.add(lblTotal, constraints);
|
||||
pnlStats.add(lblWhite, constraints);
|
||||
pnlStats.add(lblBlue, constraints);
|
||||
pnlStats.add(lblBlack, constraints);
|
||||
pnlStats.add(lblRed, constraints);
|
||||
pnlStats.add(lblGreen, constraints);
|
||||
pnlStats.add(lblColorless, constraints);
|
||||
|
||||
pnlStats.add(lblLand, constraints);
|
||||
pnlStats.add(lblArtifact, constraints);
|
||||
pnlStats.add(lblCreature, constraints);
|
||||
pnlStats.add(lblEnchantment, constraints);
|
||||
pnlStats.add(lblPlaneswalker, constraints);
|
||||
pnlStats.add(lblInstant, constraints);
|
||||
pnlStats.add(lblSorcery, constraints);
|
||||
|
||||
pnlAddButtons.setOpaque(false);
|
||||
pnlAddButtons.add(btnAdd, "w 30%!, h 30px!, gap 0 0 5px 5px");
|
||||
pnlAddButtons.add(btnAdd4, "w 30%!, h 30px!, gap 5% 5% 5px 5px");
|
||||
|
||||
|
||||
@@ -184,25 +184,24 @@ public enum VCurrentDeck implements IVDoc<CCurrentDeck>, ITableContainer {
|
||||
|
||||
pnlStats.setOpaque(false);
|
||||
pnlStats.setLayout(new MigLayout("insets 0, gap 5px, ax center, wrap 7"));
|
||||
|
||||
final String constraints = "w 55px!, h 20px!";
|
||||
pnlStats.add(lblTotal, constraints);
|
||||
pnlStats.add(lblBlack, constraints);
|
||||
pnlStats.add(lblBlue, constraints);
|
||||
pnlStats.add(lblGreen, constraints);
|
||||
pnlStats.add(lblRed, constraints);
|
||||
pnlStats.add(lblWhite, constraints);
|
||||
pnlStats.add(lblColorless, constraints);
|
||||
|
||||
pnlStats.add(lblArtifact, constraints);
|
||||
pnlStats.add(lblCreature, constraints);
|
||||
pnlStats.add(lblEnchantment, constraints);
|
||||
pnlStats.add(lblInstant, constraints);
|
||||
pnlStats.add(lblLand, constraints);
|
||||
pnlStats.add(lblPlaneswalker, constraints);
|
||||
pnlStats.add(lblSorcery, constraints);
|
||||
|
||||
pnlRemoveButtons.setOpaque(false);
|
||||
|
||||
final String constraints = "w 55px!, h 20px!";
|
||||
pnlStats.add(lblTotal, constraints);
|
||||
pnlStats.add(lblWhite, constraints);
|
||||
pnlStats.add(lblBlue, constraints);
|
||||
pnlStats.add(lblBlack, constraints);
|
||||
pnlStats.add(lblRed, constraints);
|
||||
pnlStats.add(lblGreen, constraints);
|
||||
pnlStats.add(lblColorless, constraints);
|
||||
|
||||
pnlStats.add(lblLand, constraints);
|
||||
pnlStats.add(lblArtifact, constraints);
|
||||
pnlStats.add(lblCreature, constraints);
|
||||
pnlStats.add(lblEnchantment, constraints);
|
||||
pnlStats.add(lblPlaneswalker, constraints);
|
||||
pnlStats.add(lblInstant, constraints);
|
||||
pnlStats.add(lblSorcery, constraints);
|
||||
|
||||
pnlRemoveButtons.add(btnRemove, "w 30%!, h 30px!, gap 0 0 5px 5px");
|
||||
pnlRemoveButtons.add(btnRemove4, "w 30%!, h 30px!, gap 0 0 5px 5px");
|
||||
pnlRemoveButtons.add(btnDoSideboard, "w 30%!, h 30px!, gap 0 0 5px 5px");
|
||||
|
||||
Reference in New Issue
Block a user