diff --git a/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java b/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java
index 30d27afc6d7..5b59987d83d 100644
--- a/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java
+++ b/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java
@@ -647,8 +647,8 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg
private boolean separateCreatures = true;
public enum Role {
- MAINDECK("Maindeck"),
- SIDEBOARD("Sideboard");
+ MAINDECK("Main deck"),
+ SIDEBOARD("Sideboard/commander");
Role(String name) {
this.name = name;
@@ -1955,21 +1955,21 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg
private void showCardRightClickMenu(@SuppressWarnings("unused") final CardView card, MouseEvent e) {
JPopupMenu menu = new JPopupMenu();
- JMenuItem hide = new JMenuItem("Hide");
+ JMenuItem hide = new JMenuItem("Hide (hidden in sideboard)");
hide.addActionListener(e2 -> hideSelection());
menu.add(hide);
- JMenuItem invertSelection = new JMenuItem("Invert Selection");
+ JMenuItem invertSelection = new JMenuItem("Invert selection");
invertSelection.addActionListener(e2 -> invertSelection());
menu.add(invertSelection);
- JMenuItem chooseMatching = new JMenuItem("Choose Matching");
+ JMenuItem chooseMatching = new JMenuItem("Select same cards");
chooseMatching.addActionListener(e2 -> chooseMatching());
menu.add(chooseMatching);
// Show 'Duplicate Selection' for FREE_BUILDING
if (this.mode == Constants.DeckEditorMode.FREE_BUILDING) {
- JMenuItem duplicateSelection = new JMenuItem("Duplicate Selection");
+ JMenuItem duplicateSelection = new JMenuItem("Duplicate selected cards");
duplicateSelection.addActionListener(e2 -> duplicateSelection());
menu.add(duplicateSelection);
}
diff --git a/Mage.Client/src/main/java/mage/client/deck/generator/DeckGenerator.java b/Mage.Client/src/main/java/mage/client/deck/generator/DeckGenerator.java
index 1d08e11bfd3..f1644cb1b86 100644
--- a/Mage.Client/src/main/java/mage/client/deck/generator/DeckGenerator.java
+++ b/Mage.Client/src/main/java/mage/client/deck/generator/DeckGenerator.java
@@ -37,17 +37,16 @@ public final class DeckGenerator {
/**
* Builds a deck out of the selected block/set/format.
*
- * @return a path to the generated deck.
+ * @return a path to the generated deck or null on canceled
*/
public static String generateDeck() {
-
genDialog = new DeckGeneratorDialog();
if (genDialog.getSelectedColors() != null) {
Deck deck = buildDeck();
return genDialog.saveDeck(deck);
+ } else {
+ return null;
}
- // If the deck couldn't be generated or the user cancelled, repopulate the deck selection with its cached value
- return PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_DECK_FILE, null);
}
protected static Deck buildDeck() {
diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/DeckArea.java b/Mage.Client/src/main/java/mage/client/deckeditor/DeckArea.java
index a62ae20b4ea..a1f34640c58 100644
--- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckArea.java
+++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckArea.java
@@ -80,6 +80,7 @@ public class DeckArea extends javax.swing.JPanel {
deckList.setRole(DragCardGrid.Role.MAINDECK);
sideboardList.setRole(DragCardGrid.Role.SIDEBOARD);
+ // card actions in main
// When a selection happens in one pane, deselect the selection in the other
deckList.addDragCardGridListener(new DragCardGrid.DragCardGridListener() {
@Override
@@ -121,6 +122,8 @@ public class DeckArea extends javax.swing.JPanel {
}
}
});
+
+ // card actions in sideboard
sideboardList.addDragCardGridListener(new DragCardGrid.DragCardGridListener() {
@Override
public void cardsSelected() {
diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.form b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.form
index 98a309ce94f..df74cb92578 100644
--- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.form
+++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.form
@@ -191,7 +191,7 @@
-
+
diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java
index 03b97fce029..764d25ef3f5 100644
--- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java
+++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java
@@ -290,11 +290,10 @@ public class DeckEditorPanel extends javax.swing.JPanel {
private Card retrieveTemporaryCard(SimpleCardView cardView) {
Card card = temporaryCards.get(cardView.getId());
if (card == null) {
- // Need to make a new card
- Logger.getLogger(DeckEditorPanel.class).info("Retrieve " + cardView.getCardNumber() + " Failed");
+ // need to make a new card (example: on duplicate, on show hidden cards)
card = CardRepository.instance.findCard(cardView.getExpansionSetCode(), cardView.getCardNumber()).createCard();
} else {
- // Only need a temporary card once
+ // restore temp card (example: after drag to new zone)
temporaryCards.remove(cardView.getId());
}
return card;
@@ -1014,7 +1013,7 @@ public class DeckEditorPanel extends javax.swing.JPanel {
});
btnGenDeck.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/card_panel.png"))); // NOI18N
- btnGenDeck.setText("Random");
+ btnGenDeck.setText("Generate");
btnGenDeck.setIconTextGap(1);
btnGenDeck.setName("btnGenDeck"); // NOI18N
btnGenDeck.addActionListener(new java.awt.event.ActionListener() {
@@ -1470,6 +1469,9 @@ public class DeckEditorPanel extends javax.swing.JPanel {
try {
MageFrame.getDesktop().setCursor(new Cursor(Cursor.WAIT_CURSOR));
String path = DeckGenerator.generateDeck();
+ if (path == null) {
+ return;
+ }
deck = Deck.load(DeckImporter.importDeckFromFile(path, false), true, true);
} catch (GameException ex) {
JOptionPane.showMessageDialog(MageFrame.getDesktop(), ex.getMessage(), "Error loading generated deck", JOptionPane.ERROR_MESSAGE);
diff --git a/Mage.Client/src/main/java/mage/client/table/NewPlayerPanel.java b/Mage.Client/src/main/java/mage/client/table/NewPlayerPanel.java
index dfa7f117b1f..82977aa47df 100644
--- a/Mage.Client/src/main/java/mage/client/table/NewPlayerPanel.java
+++ b/Mage.Client/src/main/java/mage/client/table/NewPlayerPanel.java
@@ -58,10 +58,11 @@ public class NewPlayerPanel extends javax.swing.JPanel {
protected void generateDeck() {
String path = DeckGenerator.generateDeck();
- if (path != null) {
- this.txtPlayerDeck.setText(path);
- MageFrame.getPreferences().put("defaultDeckPath", path);
+ if (path == null) {
+ return;
}
+ this.txtPlayerDeck.setText(path);
+ MageFrame.getPreferences().put("defaultDeckPath", path);
}
public String getPlayerName() {