From 3cf823cab9d2da15fd9698c2a6d3c4fa60ed9f94 Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Sun, 4 Sep 2011 17:56:53 +0000 Subject: [PATCH] Pulled all the deck loading errors together. --- src/main/java/forge/card/CardDb.java | 6 +++--- src/main/java/forge/deck/DeckManager.java | 14 +++++++++----- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/main/java/forge/card/CardDb.java b/src/main/java/forge/card/CardDb.java index fc3212f1fdf..1216e10b72c 100644 --- a/src/main/java/forge/card/CardDb.java +++ b/src/main/java/forge/card/CardDb.java @@ -102,9 +102,9 @@ public final class CardDb { public CardPrinted getCard(final String name) { // Sometimes they read from decks things like "CardName|Set" - but we can handle it int pipePos = name.indexOf('|'); - String cardName = name.toLowerCase(); + String cardName = name; if (pipePos >= 0) { - cardName = name.substring(0, pipePos).toLowerCase(); + cardName = name.substring(0, pipePos); String setName = name.substring(pipePos + 1); // only if set is not blank try to load it if (StringUtils.isNotBlank(setName)) { @@ -112,7 +112,7 @@ public final class CardDb { } } // OK, plain name here - CardPrinted card = uniqueCards.get(cardName); + CardPrinted card = uniqueCards.get(cardName.toLowerCase()); if (card != null) { return card; } throw new NoSuchElementException(String.format("Card '%s' not found in our database.", name)); } diff --git a/src/main/java/forge/deck/DeckManager.java b/src/main/java/forge/deck/DeckManager.java index 6643d58e366..b9979188b64 100644 --- a/src/main/java/forge/deck/DeckManager.java +++ b/src/main/java/forge/deck/DeckManager.java @@ -220,17 +220,21 @@ public class DeckManager { File[] files; + List decksThatFailedToLoad = new ArrayList(); files = deckDir.listFiles(DCKFileFilter); for (File file : files) { - try { Deck newDeck = readDeck(file); deckMap.put(newDeck.getName(), newDeck); - } catch ( NoSuchElementException ex ) { - String message = String.format("Your deck '%s' failed to load beacuse %s", file.getName(), ex.getMessage()); - JOptionPane.showMessageDialog(null, message, "One of your decks failed to load", JOptionPane.ERROR_MESSAGE); + } catch (NoSuchElementException ex) { + String message = String.format("%s failed to load because ---- %s", file.getName(), ex.getMessage()); + decksThatFailedToLoad.add(message); } - + } + + if (!decksThatFailedToLoad.isEmpty()) { + JOptionPane.showMessageDialog(null, StringUtils.join(decksThatFailedToLoad, System.getProperty("line.separator")), + "Some of your decks were not loaded.", JOptionPane.WARNING_MESSAGE); } files = deckDir.listFiles(BDKFileFilter);