diff --git a/Mage.Client/src/main/java/mage/client/cards/CardsList.form b/Mage.Client/src/main/java/mage/client/cards/CardsList.form index 258e4cf9cb1..dd8e29b3cdf 100644 --- a/Mage.Client/src/main/java/mage/client/cards/CardsList.form +++ b/Mage.Client/src/main/java/mage/client/cards/CardsList.form @@ -1,4 +1,4 @@ - +
diff --git a/Mage.Client/src/main/java/mage/client/cards/CardsList.java b/Mage.Client/src/main/java/mage/client/cards/CardsList.java index d3c1fa9ec11..c386a18da9f 100644 --- a/Mage.Client/src/main/java/mage/client/cards/CardsList.java +++ b/Mage.Client/src/main/java/mage/client/cards/CardsList.java @@ -39,6 +39,10 @@ import java.awt.Rectangle; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.beans.Beans; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; import java.util.UUID; import mage.cards.MageCard; @@ -66,12 +70,19 @@ public class CardsList extends javax.swing.JPanel implements MouseListener { } public void loadCards(CardsView showCards, BigCard bigCard, UUID gameId) { + loadCards(showCards, bigCard, gameId, false); + } + + public void loadCards(CardsView showCards, BigCard bigCard, UUID gameId, boolean sorted) { //FIXME: why we remove all cards? for performance it's better to merge changes cardArea.removeAll(); if (showCards != null && showCards.size() > 0) { Rectangle rectangle = new Rectangle(Config.dimensions.frameWidth, Config.dimensions.frameHeight); int count = 0; - for (CardView card: showCards.values()) { + List sortedCards = new ArrayList(showCards.values()); + if (sorted) + Collections.sort(sortedCards, new CardViewComparator()); + for (CardView card: sortedCards) { addCard(card, bigCard, gameId, rectangle); if (count >= 10) { rectangle.translate(Config.dimensions.frameWidth, -200); @@ -164,3 +175,12 @@ public class CardsList extends javax.swing.JPanel implements MouseListener { } } + +class CardViewComparator implements Comparator { + + @Override + public int compare(CardView o1, CardView o2) { + return o1.getName().compareTo(o2.getName()); + } + +} \ No newline at end of file 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 6c5c9720f05..66621ba49e0 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java @@ -37,7 +37,7 @@ package mage.client.deckeditor; import mage.cards.Card; import mage.cards.decks.Deck; import mage.client.MageFrame; -import mage.client.deckeditor.collection.viewer.Huerotator2; +//import mage.client.deckeditor.collection.viewer.Huerotator2; import mage.client.plugins.impl.Plugins; import mage.client.util.Event; import mage.client.util.Listener; @@ -149,8 +149,8 @@ public class DeckEditorPanel extends javax.swing.JPanel { try { setCursor(new Cursor(Cursor.WAIT_CURSOR)); this.txtDeckName.setText(deck.getName()); - deckArea.getDeckList().loadCards(new CardsView(deck.getCards()), bigCard, null); - deckArea.getSideboardList().loadCards(new CardsView(deck.getSideboard()), bigCard, null); + deckArea.getDeckList().loadCards(new CardsView(deck.getCards()), bigCard, null, true); + deckArea.getSideboardList().loadCards(new CardsView(deck.getSideboard()), bigCard, null, true); } finally { setCursor(new Cursor(Cursor.DEFAULT_CURSOR));