From 4e7d338144967ac72845316f00e50daa2a63e66b Mon Sep 17 00:00:00 2001 From: "Jamin W. Collins" Date: Fri, 16 Feb 2018 18:03:55 -0700 Subject: [PATCH] improve "Copy to Clipboard" - merge reprinted cards Signed-off-by: Jamin W. Collins --- .../main/java/forge/deckchooser/FDeckViewer.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckViewer.java b/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckViewer.java index 0e3109e9b4e..e97535ff489 100644 --- a/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckViewer.java +++ b/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckViewer.java @@ -30,6 +30,8 @@ import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.List; import java.util.Map.Entry; +import java.util.SortedMap; +import java.util.TreeMap; @SuppressWarnings("serial") public class FDeckViewer extends FDialog { @@ -171,6 +173,8 @@ public class FDeckViewer extends FDialog { final String nl = System.getProperty("line.separator"); final StringBuilder deckList = new StringBuilder(); final String dName = deck.getName(); + String cardName; + SortedMap sectionCards; deckList.append(dName == null ? "" : dName + nl + nl); for (DeckSection s : DeckSection.values()){ @@ -179,12 +183,22 @@ public class FDeckViewer extends FDialog { continue; } deckList.append(s.toString()).append(": "); + sectionCards = new TreeMap<>(); if (s.isSingleCard()) { deckList.append(cp.get(0).getName()).append(nl); } else { deckList.append(nl); for (final Entry ev : cp) { + cardName = ev.getKey().toString(); + if (sectionCards.containsKey(cardName)) { + sectionCards.put(cardName, (int)sectionCards.get(cardName) + ev.getValue()); + } + else { + sectionCards.put(cardName, ev.getValue()); + } + } + for (final Entry ev: sectionCards.entrySet()) { deckList.append(ev.getValue()).append(" ").append(ev.getKey()).append(nl); } }