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() {