diff --git a/Mage.Client/src/main/java/mage/client/cards/CardGrid.form b/Mage.Client/src/main/java/mage/client/cards/CardGrid.form index e0b3e229964..61cdb517150 100644 --- a/Mage.Client/src/main/java/mage/client/cards/CardGrid.form +++ b/Mage.Client/src/main/java/mage/client/cards/CardGrid.form @@ -1,4 +1,4 @@ - +
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 ad488aaa17b..8cafcb5393a 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java @@ -70,15 +70,17 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene jScrollPane1.getViewport().setOpaque(false); } - public void loadCards(List cards, BigCard bigCard) { + public void loadCards(List sideboard, BigCard bigCard) { this.bigCard = bigCard; this.btnBooster.setVisible(false); this.btnClear.setVisible(false); this.cbExpansionSet.setVisible(false); - cards.clear(); - for (Card card: cards) { - cards.add(card); + this.cards.clear(); + for (Card card: sideboard) { + this.cards.add(card); } + initFilter(); + filterCards(); } public void loadCards(BigCard bigCard) { @@ -96,6 +98,12 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene cbExpansionSet.setModel(new DefaultComboBoxModel(l)); // cbExpansionSet.insertItemAt("All sets", 0); cbExpansionSet.setSelectedIndex(0); + initFilter(); + filter.getExpansionSetCode().add(((ExpansionSet)this.cbExpansionSet.getSelectedItem()).getCode()); + filterCards(); + } + + private void initFilter() { filter.setUseColor(true); filter.getColor().setBlack(true); filter.getColor().setBlue(true); @@ -114,8 +122,6 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene filter.getCardType().add(CardType.PLANESWALKER); filter.getCardType().add(CardType.SORCERY); filter.setScopeCardType(ComparisonScope.Any); - filter.getExpansionSetCode().add(((ExpansionSet)this.cbExpansionSet.getSelectedItem()).getCode()); - filterCards(); } private void filterCards() { @@ -145,8 +151,20 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene return this.cardGrid; } - public List getCards() { - return cards; + public Card getCard(UUID cardId) { + if (!cards.isEmpty()) { + for (Card card: cards) { + if (card.getId().equals(cardId)) + return card; + } + } + else { + for (Card card: CardsStorage.getAllCards()) { + if (card.getId().equals(cardId)) + return card; + } + } + return null; } /** This method is called from within the constructor to diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/DeckArea.form b/Mage.Client/src/main/java/mage/client/deckeditor/DeckArea.form index 5eaace8c59d..068e9db2f76 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckArea.form +++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckArea.form @@ -1,4 +1,4 @@ - + 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 0da9e60ccdd..c1a55ebafb6 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckArea.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckArea.java @@ -51,6 +51,10 @@ public class DeckArea extends javax.swing.JPanel { sideboardList.setOpaque(false); } + public void showSideboard(boolean show) { + this.sideboardList.setVisible(show); + } + public CardsList getDeckList() { return deckList; } 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 72288128bfa..fdbfd862377 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java @@ -70,6 +70,7 @@ public class DeckEditorPanel extends javax.swing.JPanel { private Deck deck = new Deck(); private boolean isShowCardInfo = false; private UUID tableId; + private DeckEditorMode mode; /** Creates new form DeckEditorPanel */ @@ -91,11 +92,14 @@ public class DeckEditorPanel extends javax.swing.JPanel { if (deck != null) { this.deck = deck; this.tableId = tableId; + this.mode = mode; this.btnSubmit.setVisible(mode == DeckEditorMode.Sideboard || mode == DeckEditorMode.Limited); this.cardSelector.loadCards(new ArrayList(deck.getSideboard()), this.bigCard); + this.deckArea.showSideboard(false); } else { this.cardSelector.loadCards(this.bigCard); + this.deckArea.showSideboard(true); } init(); } @@ -109,16 +113,14 @@ public class DeckEditorPanel extends javax.swing.JPanel { @Override public void event(Event event) { if (event.getEventName().equals("double-click")) { - for (Card card: cardSelector.getCards()) { - if (card.getId().equals((UUID)event.getSource())) { - deck.getCards().add(createCard(card.getClass())); - if (System.getProperty("draft") != null) { - cardSelector.getCardsList().removeCard(card.getId()); - } - if (cardInfoPane instanceof CardInfoPane) { - ((CardInfoPane)cardInfoPane).setCard(new CardView(card)); - } - break; + Card card = cardSelector.getCard((UUID) event.getSource()); + if (card != null) { + deck.getCards().add(createCard(card.getClass())); + if (mode == DeckEditorMode.Sideboard || mode == DeckEditorMode.Limited) { + cardSelector.getCardsList().removeCard(card.getId()); + } + if (cardInfoPane instanceof CardInfoPane) { + ((CardInfoPane)cardInfoPane).setCard(new CardView(card)); } } refreshDeck();