diff --git a/src/main/java/forge/gui/deckeditor/SFilterUtil.java b/src/main/java/forge/gui/deckeditor/SFilterUtil.java
index 482411985c0..7cd2b6edbf9 100644
--- a/src/main/java/forge/gui/deckeditor/SFilterUtil.java
+++ b/src/main/java/forge/gui/deckeditor/SFilterUtil.java
@@ -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.
*
- * (S at beginning of class name denotes a static factory.)
- */
-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 MAP_COLOR_CHECKBOXES =
- new HashMap();
-
- private static final Map MAP_TYPE_CHECKBOXES =
- new HashMap();
-
- /**
-
+ * (S at beginning of class name denotes a static factory.)
+ */
+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 MAP_COLOR_CHECKBOXES =
+ new HashMap();
+
+ private static final Map MAP_TYPE_CHECKBOXES =
+ new HashMap();
+
+ /**
+
*/
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.
*
@@ -182,23 +181,22 @@ public class SFilterUtil {
*/
public static Predicate buildColorFilter() {
if (MAP_COLOR_CHECKBOXES.isEmpty()) { return Predicates.alwaysTrue(); }
-
- final List> colors = new ArrayList>();
-
- 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 preColors = colors.size() == 6 ? null : Predicates.or(colors);
-
-
- boolean wantMulticolor = MAP_COLOR_CHECKBOXES.get(FilterProperty.MULTICOLOR).getCheckBox().isSelected();
- final Predicate preExceptMulti = wantMulticolor ? null : Predicates.not(CardRulesPredicates.Presets.IS_MULTICOLOR);
-
- Predicate preFinal = colors.isEmpty() && wantMulticolor ? CardRulesPredicates.Presets.IS_MULTICOLOR : optimizedAnd(preExceptMulti, preColors);
+
+ final List> colors = new ArrayList>();
+
+ 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 preColors = colors.size() == 6 ? null : Predicates.or(colors);
+
+ boolean wantMulticolor = MAP_COLOR_CHECKBOXES.get(ColorFilterProperty.MULTICOLOR).getCheckBox().isSelected();
+ final Predicate preExceptMulti = wantMulticolor ? null : Predicates.not(CardRulesPredicates.Presets.IS_MULTICOLOR);
+
+ Predicate 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
*/
public static Predicate buildTypeFilter() {
- if (MAP_TYPE_CHECKBOXES.isEmpty()) { return Predicates.alwaysTrue(); }
-
- final List> ors = new ArrayList>();
- 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> ors = new ArrayList>();
+ 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();
diff --git a/src/main/java/forge/gui/deckeditor/views/VCardCatalog.java b/src/main/java/forge/gui/deckeditor/views/VCardCatalog.java
index fc1308f4842..ff775d0e61e 100644
--- a/src/main/java/forge/gui/deckeditor/views/VCardCatalog.java
+++ b/src/main/java/forge/gui/deckeditor/views/VCardCatalog.java
@@ -100,25 +100,25 @@ public enum VCardCatalog implements IVDoc, 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");
diff --git a/src/main/java/forge/gui/deckeditor/views/VCurrentDeck.java b/src/main/java/forge/gui/deckeditor/views/VCurrentDeck.java
index 345c4faa3cb..f95e41a96d0 100644
--- a/src/main/java/forge/gui/deckeditor/views/VCurrentDeck.java
+++ b/src/main/java/forge/gui/deckeditor/views/VCurrentDeck.java
@@ -184,25 +184,24 @@ public enum VCurrentDeck implements IVDoc, 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");