From da316cc345c9487683151cc9938b7ad09dae5d60 Mon Sep 17 00:00:00 2001 From: BetaSteward Date: Thu, 12 May 2011 21:20:07 -0400 Subject: [PATCH] fixed Issue 76 --- .../client/deckeditor/DecDeckImporter.java | 6 ++-- .../client/deckeditor/DeckEditorPanel.java | 3 +- .../client/deckeditor/DeckImporterImpl.java | 4 +++ .../client/deckeditor/MWSDeckImporter.java | 28 +++++++++++++------ .../client/deckeditor/TxtDeckImporter.java | 6 ++-- Mage/src/mage/cards/ExpansionSet.java | 4 +-- 6 files changed, 35 insertions(+), 16 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/DecDeckImporter.java b/Mage.Client/src/main/java/mage/client/deckeditor/DecDeckImporter.java index 268f3065ce9..ccaaccf600b 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/DecDeckImporter.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/DecDeckImporter.java @@ -28,6 +28,7 @@ package mage.client.deckeditor; +import mage.cards.Card; import mage.cards.decks.DeckCardLists; import mage.sets.Sets; @@ -50,10 +51,11 @@ public class DecDeckImporter extends DeckImporterImpl { String lineName = line.substring(delim).trim(); try { int num = Integer.parseInt(lineNum); - String cardName = Sets.findCard(lineName).getClass().getCanonicalName(); - if (cardName == null) + Card card = Sets.findCard(lineName); + if (card == null) sbMessage.append("Could not find card: '").append(lineName).append("' at line ").append(lineCount).append("\n"); else { + String cardName = card.getClass().getCanonicalName(); for (int i = 0; i < num; i++) { if (!sideboard) deckList.getCards().add(cardName); 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 d8305a9aa4d..36129f7945b 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java @@ -612,7 +612,8 @@ public class DeckEditorPanel extends javax.swing.JPanel { } refreshDeck(); try { - MageFrame.getPreferences().put("lastImportFolder", file.getCanonicalPath()); + if (file != null) + MageFrame.getPreferences().put("lastImportFolder", file.getCanonicalPath()); } catch (IOException ex) { } } fcImportDeck.setSelectedFile(null); diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/DeckImporterImpl.java b/Mage.Client/src/main/java/mage/client/deckeditor/DeckImporterImpl.java index 0b806e7fb39..14540c94bd1 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckImporterImpl.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckImporterImpl.java @@ -65,6 +65,10 @@ public abstract class DeckImporterImpl implements DeckImporter { JOptionPane.showMessageDialog(MageFrame.getDesktop(), sbMessage.toString(), "Error importing deck", JOptionPane.ERROR_MESSAGE); } } + catch (Exception ex) { + JOptionPane.showMessageDialog(MageFrame.getDesktop(), ex.getMessage(), "Error importing deck", JOptionPane.ERROR_MESSAGE); + logger.log(Level.SEVERE, null, ex); + } finally { scanner.close(); } diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/MWSDeckImporter.java b/Mage.Client/src/main/java/mage/client/deckeditor/MWSDeckImporter.java index 4c0e34c8a3e..629d89b25f5 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/MWSDeckImporter.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/MWSDeckImporter.java @@ -28,8 +28,11 @@ package mage.client.deckeditor; +import javax.swing.JOptionPane; +import mage.cards.Card; import mage.cards.ExpansionSet; import mage.cards.decks.DeckCardLists; +import mage.client.MageFrame; import mage.sets.Sets; /** @@ -48,23 +51,30 @@ public class MWSDeckImporter extends DeckImporterImpl { } int delim = line.indexOf(' '); String lineNum = line.substring(0, delim).trim(); - int setStart = line.indexOf('[') + 1; - int setEnd = line.indexOf(']'); - String setCode = line.substring(setStart, setEnd).trim(); - String lineName = line.substring(setEnd + 1).trim(); + String setCode = ""; + if (line.indexOf('[') != -1 ) { + int setStart = line.indexOf('[') + 1; + int setEnd = line.indexOf(']'); + setCode = line.substring(setStart, setEnd).trim(); + delim = setEnd; + } + String lineName = line.substring(delim + 1).trim(); try { int num = Integer.parseInt(lineNum); - ExpansionSet set = Sets.findSet(setCode); - String cardName; + ExpansionSet set = null; + if (setCode.length() > 0) + set = Sets.findSet(setCode); + Card card; if (set != null) { - cardName = set.findCard(lineName).getClass().getCanonicalName(); + card = set.findCard(lineName); } else { - cardName = Sets.findCard(lineName).getClass().getCanonicalName(); + card = Sets.findCard(lineName); } - if (cardName == null) + if (card == null) sbMessage.append("Could not find card: '").append(lineName).append("' at line ").append(lineCount).append("\n"); else { + String cardName = card.getClass().getCanonicalName(); for (int i = 0; i < num; i++) { if (!sideboard) deckList.getCards().add(cardName); diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/TxtDeckImporter.java b/Mage.Client/src/main/java/mage/client/deckeditor/TxtDeckImporter.java index 77d98783421..dc07c2b8b23 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/TxtDeckImporter.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/TxtDeckImporter.java @@ -28,6 +28,7 @@ package mage.client.deckeditor; +import mage.cards.Card; import mage.cards.decks.DeckCardLists; import mage.sets.Sets; @@ -51,10 +52,11 @@ public class TxtDeckImporter extends DeckImporterImpl { String lineName = line.substring(delim).trim(); try { int num = Integer.parseInt(lineNum); - String cardName = Sets.findCard(lineName).getClass().getCanonicalName(); - if (cardName == null) + Card card = Sets.findCard(lineName); + if (card == null) sbMessage.append("Could not find card: '").append(lineName).append("' at line ").append(lineCount).append("\n"); else { + String cardName = card.getClass().getCanonicalName(); for (int i = 0; i < num; i++) { if (!sideboard) deckList.getCards().add(cardName); diff --git a/Mage/src/mage/cards/ExpansionSet.java b/Mage/src/mage/cards/ExpansionSet.java index e09d7ba26a9..6533f08e4cf 100644 --- a/Mage/src/mage/cards/ExpansionSet.java +++ b/Mage/src/mage/cards/ExpansionSet.java @@ -122,7 +122,7 @@ public abstract class ExpansionSet implements Serializable { public Card findCard(String name) { for (Card card : cards) { - if (name.equals(card.getName())) { + if (name.equalsIgnoreCase(card.getName())) { Card newCard = card.copy(); newCard.assignNewId(); return newCard; @@ -134,7 +134,7 @@ public abstract class ExpansionSet implements Serializable { public Card findCard(String name, boolean random) { List foundCards = new ArrayList(); for (Card card : cards) { - if (name.equals(card.getName())) { + if (name.equalsIgnoreCase(card.getName())) { foundCards.add(card); } }