GUI: Add "Generate" to the new Decklist Panel

This commit is contained in:
Johannes Wolf 2025-12-23 11:51:34 +01:00
parent 0862be5d1c
commit a6f1c194eb
2 changed files with 21 additions and 15 deletions

View file

@ -1,6 +1,7 @@
package mage.client.components;
import mage.cards.decks.DeckFileFilter;
import mage.client.deck.generator.DeckGenerator;
import mage.client.util.RecentDecklistUtil;
import javax.swing.*;
@ -16,6 +17,7 @@ public class DecklistChooser extends JPanel
private final String CLEAR_ITEM = "Clear recent decks";
private final JButton chooseButton;
private final JButton generateButton;
private final JComboBox<String> decklistCombobox;
private boolean inUpdate = false;
@ -23,6 +25,9 @@ public class DecklistChooser extends JPanel
chooseButton = new JButton("...");
chooseButton.setToolTipText("Select deck file...");
generateButton = new JButton("Generate");
generateButton.setToolTipText("Generate a new deck...");
decklistCombobox = new JComboBox<>();
setupControls();
@ -31,6 +36,7 @@ public class DecklistChooser extends JPanel
private void setupControls() {
chooseButton.addActionListener(e -> chooseFile());
generateButton.addActionListener(e -> generateDeck());
decklistCombobox.setEditable(true);
@ -85,6 +91,9 @@ public class DecklistChooser extends JPanel
gbc.weightx = 0;
gbc.fill = GridBagConstraints.NONE;
add(chooseButton, gbc);
gbc.gridx = 2;
add(generateButton, gbc);
}
/**
@ -163,4 +172,15 @@ public class DecklistChooser extends JPanel
}
}
}
/**
* Generate a new deck using the Generate Deck dialog.
*/
private void generateDeck() {
String filename = DeckGenerator.generateDeck();
if (filename != null) {
RecentDecklistUtil.putRecentDecklistFiles(filename);
update();
}
}
}

View file

@ -63,7 +63,6 @@ public class NewPlayerPanel extends javax.swing.JPanel {
public void showDeckElements(boolean show) {
lblPlayerDeck.setVisible(show);
decklist.setVisible(show);
btnGenerate.setVisible(show);
}
/**
@ -79,7 +78,6 @@ public class NewPlayerPanel extends javax.swing.JPanel {
txtPlayerName = new javax.swing.JTextField();
lblPlayerDeck = new javax.swing.JLabel();
decklist = new DecklistChooser();
btnGenerate = new javax.swing.JButton();
lblLevel = new javax.swing.JLabel();
spnLevel = new javax.swing.JSpinner();
@ -87,9 +85,6 @@ public class NewPlayerPanel extends javax.swing.JPanel {
lblPlayerDeck.setText("Deck:");
btnGenerate.setText("Generate");
btnGenerate.addActionListener(evt -> btnGenerateActionPerformed(evt));
lblLevel.setText("Skill:");
spnLevel.setModel(new javax.swing.SpinnerNumberModel(2, 1, 10, 1));
@ -110,9 +105,6 @@ public class NewPlayerPanel extends javax.swing.JPanel {
.addComponent(decklist, javax.swing.GroupLayout.DEFAULT_SIZE, 310, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnGenerate, javax.swing.GroupLayout.PREFERRED_SIZE, 87, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(lblLevel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
@ -130,17 +122,11 @@ public class NewPlayerPanel extends javax.swing.JPanel {
.addGap(3, 3, 3)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblPlayerDeck)
.addComponent(decklist, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnGenerate, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addComponent(decklist, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
);
}// </editor-fold>//GEN-END:initComponents
private void btnGenerateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnGenerateActionPerformed
generateDeck();
}//GEN-LAST:event_btnGenerateActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton btnGenerate;
private DecklistChooser decklist;
private javax.swing.JLabel lblLevel;
private javax.swing.JLabel lblPlayerDeck;