From 4fc4eb4630a9cb0d1d7994bad5da92f0fa2ce0fb Mon Sep 17 00:00:00 2001 From: Failure Date: Fri, 10 Jan 2025 17:04:42 -0800 Subject: [PATCH] add foul magics set selector --- .../java/mage/client/constants/Constants.java | 23 ++++++++++++---- .../mage/client/deckeditor/CardSelector.form | 22 ++++++++++++++++ .../mage/client/deckeditor/CardSelector.java | 26 ++++++++++++++++++- 3 files changed, 65 insertions(+), 6 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/constants/Constants.java b/Mage.Client/src/main/java/mage/client/constants/Constants.java index b362a977d32..72dd4731cb1 100644 --- a/Mage.Client/src/main/java/mage/client/constants/Constants.java +++ b/Mage.Client/src/main/java/mage/client/constants/Constants.java @@ -2,9 +2,15 @@ package mage.client.constants; import javax.swing.*; import javax.swing.border.Border; + +import com.google.common.collect.ImmutableList; + +import javafx.util.Pair; + import java.awt.*; import java.io.File; + /** * @author BetaSteward_at_googlemail.com */ @@ -13,12 +19,19 @@ public final class Constants { private Constants() { throw new AssertionError(); } + + public static final ImmutableList> foulMagicsSets = ImmutableList.of( + new Pair("Set 1 - FDN, Ravnica", new String[] { + "* Foundations Block", + "* Guilds of Ravnica Block", + "* Return to Ravnica Block", + }), + new Pair("Set 0.5 - FDN", new String[] { + "* Foundations Block", + }) + ); + - public static final String[] foulMagicsBlocks = { - "* Foundations Block", - "* Guilds of Ravnica Block", - "* Return to Ravnica Block", - }; public static final int FRAME_MAX_HEIGHT = 367; public static final int FRAME_MAX_WIDTH = 256; diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.form b/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.form index 063b109a0f8..18a8b90bda1 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.form +++ b/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.form @@ -222,6 +222,28 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java b/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java index 44656a59ad6..d59bca434cf 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java @@ -32,6 +32,8 @@ import mage.view.CardsView; import org.apache.log4j.Logger; import org.mage.card.arcane.ManaSymbolsCellRenderer; +import javafx.util.Pair; + import javax.swing.*; import javax.swing.table.DefaultTableCellRenderer; import java.awt.*; @@ -563,6 +565,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene jSeparator1 = new javax.swing.JToolBar.Separator(); cbExpansionSet = new javax.swing.JComboBox<>(); btnExpansionSearch = new javax.swing.JButton(); + cbFoulMagicPresets = new javax.swing.JComboBox<>(); btnFoulMagicPreset = new javax.swing.JButton(); jSeparator2 = new javax.swing.JToolBar.Separator(); chkPennyDreadful = new javax.swing.JCheckBox(); @@ -744,6 +747,19 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene }); tbColor.add(btnExpansionSearch); + List setNames = new LinkedList(); + for (Pair pair : Constants.foulMagicsSets) { + setNames.add(pair.getKey()); + } + + DefaultComboBoxModel presetModel = new DefaultComboBoxModel<>(setNames.toArray()); + cbFoulMagicPresets.setModel(presetModel); + + cbFoulMagicPresets.setMaximumSize(new java.awt.Dimension(200, 20)); + cbFoulMagicPresets.setMinimumSize(new java.awt.Dimension(150, 20)); + cbFoulMagicPresets.setPreferredSize(new java.awt.Dimension(175, 20)); + tbColor.add(cbFoulMagicPresets); + btnFoulMagicPreset.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/brick.png"))); // NOI18N btnFoulMagicPreset.setToolTipText("Set to Foul Magic preset"); btnFoulMagicPreset.setAlignmentX(1.0F); @@ -1484,15 +1500,22 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene }//GEN-LAST:event_chkRulesActionPerformed private void btnFoulMagicPresetSet(java.awt.event.ActionEvent evt) { + reloadSetsCombobox(); if (cbExpansionSet.getItemAt(0).startsWith(MULTI_SETS_SELECTION_TEXT)) { cbExpansionSet.removeItemAt(0); } listCodeSelected.uncheckAll(); + String[] selectedFormats = Constants.foulMagicsSets.get(this.cbFoulMagicPresets.getSelectedIndex()).getValue(); + if (selectedFormats.length == 1) { + this.cbExpansionSet.setSelectedItem(selectedFormats[0]); + filterCards(); + return; + } List formats = ConstructedFormats.getTypes(false); for (int i = 0; i < formats.size(); i++) { - if (Arrays.stream(Constants.foulMagicsBlocks).anyMatch(formats.get(i)::equals)) { + if (Arrays.stream(selectedFormats).anyMatch(formats.get(i)::equals)) { listCodeSelected.setChecked(i - 1, true); } } @@ -1620,6 +1643,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene private javax.swing.JScrollPane cardSelectorScrollPane; private javax.swing.JComboBox cbExpansionSet; private javax.swing.JComboBox cbSortBy; + private javax.swing.JComboBox cbFoulMagicPresets; private javax.swing.JCheckBox chkNames; private javax.swing.JCheckBox chkPennyDreadful; private javax.swing.JCheckBox chkPiles;