mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
Restored Deck Import to Deck Editor.
This commit is contained in:
@@ -217,7 +217,9 @@ public class Gui_DeckEditor extends JFrame implements CardContainer, DeckDisplay
|
||||
}// for
|
||||
|
||||
topModel.resort();
|
||||
topTable.repaint();
|
||||
bottomModel.resort();
|
||||
bottomTable.repaint();
|
||||
}// updateDisplay
|
||||
|
||||
public void updateDisplay() {
|
||||
|
||||
@@ -350,11 +350,10 @@ public class Gui_DeckEditor_Menu extends JMenuBar implements NewConstants {
|
||||
|
||||
for (int i = 0; i < deck.countMain(); i++) {
|
||||
String cardName = deck.getMain(i);
|
||||
String setCode = "";
|
||||
|
||||
if (cardName.contains("|")) {
|
||||
String s[] = cardName.split("\\|", 2);
|
||||
cardName = s[0];
|
||||
setCode = s[1];
|
||||
}
|
||||
|
||||
top.add(AllZone.CardFactory.getCard(cardName, AllZone.HumanPlayer));
|
||||
@@ -375,21 +374,6 @@ public class Gui_DeckEditor_Menu extends JMenuBar implements NewConstants {
|
||||
deckDisplay.updateDisplay(top, new CardList());
|
||||
}//new draft
|
||||
|
||||
private FileFilter getFileFilter() {
|
||||
FileFilter filter = new FileFilter() {
|
||||
@Override
|
||||
public boolean accept(File f) {
|
||||
return f.getName().endsWith(".deck") || f.isDirectory();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return "Deck File .deck";
|
||||
}
|
||||
};
|
||||
|
||||
return filter;
|
||||
}//getFileFilter()
|
||||
|
||||
private FileFilter dckFilter = new FileFilter() {
|
||||
@Override
|
||||
@@ -408,7 +392,6 @@ public class Gui_DeckEditor_Menu extends JMenuBar implements NewConstants {
|
||||
JFileChooser chooser = new JFileChooser(previousDirectory);
|
||||
|
||||
chooser.addChoosableFileFilter(dckFilter);
|
||||
chooser.addChoosableFileFilter(getFileFilter());
|
||||
int returnVal = chooser.showOpenDialog(null);
|
||||
|
||||
if (returnVal == JFileChooser.APPROVE_OPTION) {
|
||||
@@ -446,7 +429,7 @@ public class Gui_DeckEditor_Menu extends JMenuBar implements NewConstants {
|
||||
else if (file.getName().endsWith(".dck")) {
|
||||
try {
|
||||
FileChannel srcChannel = new FileInputStream(file).getChannel();
|
||||
File dst = new File(ForgeProps.getFile(NEW_DECKS).getAbsolutePath() + java.io.File.pathSeparator
|
||||
File dst = new File(ForgeProps.getFile(NEW_DECKS).getAbsolutePath() + java.io.File.separator
|
||||
+ (file.getName()));
|
||||
if (!dst.createNewFile()) {
|
||||
JOptionPane.showMessageDialog(null, "Cannot import deck " + file.getName()
|
||||
@@ -457,8 +440,11 @@ public class Gui_DeckEditor_Menu extends JMenuBar implements NewConstants {
|
||||
dstChannel.transferFrom(srcChannel, 0, srcChannel.size());
|
||||
srcChannel.close();
|
||||
dstChannel.close();
|
||||
JOptionPane.showMessageDialog(null, file.getName()
|
||||
+ "imported succesfully. Restart the deck editor to see it.");
|
||||
|
||||
Deck newDeck = DeckManager.readDeck(file);
|
||||
deckManager.addDeck(newDeck);
|
||||
showDeck(newDeck);
|
||||
|
||||
} catch (Exception ex) {
|
||||
ErrorViewer.showError(ex);
|
||||
throw new RuntimeException("Gui_DeckEditor_Menu : importDeck() error, " + ex);
|
||||
@@ -627,7 +613,6 @@ public class Gui_DeckEditor_Menu extends JMenuBar implements NewConstants {
|
||||
//write one Deck object or
|
||||
//many Deck objects if it is a draft deck
|
||||
Deck deck = getDeck();
|
||||
Object write = deck;
|
||||
|
||||
deck.setName(filename.getName());
|
||||
|
||||
@@ -640,14 +625,10 @@ public class Gui_DeckEditor_Menu extends JMenuBar implements NewConstants {
|
||||
|
||||
//replace your deck
|
||||
d[0] = deck;
|
||||
write = d;
|
||||
}
|
||||
|
||||
try {
|
||||
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(filename));
|
||||
out.writeObject(write);
|
||||
out.flush();
|
||||
out.close();
|
||||
DeckManager.writeDeck(deck, filename);
|
||||
} catch (Exception ex) {
|
||||
ErrorViewer.showError(ex);
|
||||
throw new RuntimeException("Gui_DeckEditor_Menu : exportDeck() error, " + ex);
|
||||
@@ -765,8 +746,7 @@ public class Gui_DeckEditor_Menu extends JMenuBar implements NewConstants {
|
||||
|
||||
save.setDialogTitle("Export Deck Filename");
|
||||
save.setDialogType(JFileChooser.SAVE_DIALOG);
|
||||
save.addChoosableFileFilter(getFileFilter());
|
||||
save.setSelectedFile(new File(currentDeckName + ".deck"));
|
||||
save.setFileFilter(dckFilter);
|
||||
|
||||
int returnVal = save.showSaveDialog(null);
|
||||
|
||||
@@ -776,17 +756,16 @@ public class Gui_DeckEditor_Menu extends JMenuBar implements NewConstants {
|
||||
|
||||
previousDirectory = file.getParentFile();
|
||||
|
||||
if (check.endsWith(".deck")) {
|
||||
if (check.endsWith(".dck")) {
|
||||
return file;
|
||||
}
|
||||
else {
|
||||
return new File(check + ".deck");
|
||||
return new File(check + ".dck");
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}//getExportFilename()
|
||||
|
||||
}
|
||||
|
||||
private void openConstructed() {
|
||||
if (debugPrint) {
|
||||
|
||||
@@ -15,7 +15,7 @@ import static java.lang.String.format;
|
||||
import static java.util.Arrays.asList;
|
||||
|
||||
|
||||
//reads and write Deck objects
|
||||
//reads and writeDeck Deck objects
|
||||
public class DeckManager {
|
||||
private static FilenameFilter BDKFileFilter = new FilenameFilter() {
|
||||
public boolean accept(File dir, String name) {
|
||||
@@ -51,11 +51,11 @@ public class DeckManager {
|
||||
}
|
||||
this.deckMap = new HashMap<String, Deck>();
|
||||
this.boosterMap = new HashMap<String, Deck[]>();
|
||||
readDir();
|
||||
readAllDecks();
|
||||
}
|
||||
} catch (IOException ex) {
|
||||
ErrorViewer.showError(ex);
|
||||
throw new RuntimeException("DeckManager : write() error, " + ex.getMessage());
|
||||
throw new RuntimeException("DeckManager : writeDeck() error, " + ex.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,6 +68,11 @@ public class DeckManager {
|
||||
return !boosterMap.keySet().contains(deckName);
|
||||
}
|
||||
|
||||
public Deck getDeck(String deckName) {
|
||||
return deckMap.get(deckName);
|
||||
}
|
||||
|
||||
|
||||
public void addDeck(Deck deck) {
|
||||
if (deck.getDeckType().equals(Constant.GameType.Draft)) {
|
||||
throw new RuntimeException(
|
||||
@@ -126,7 +131,7 @@ public class DeckManager {
|
||||
}
|
||||
|
||||
|
||||
public void readDir() {
|
||||
public void readAllDecks() {
|
||||
deckMap.clear();
|
||||
boosterMap.clear();
|
||||
|
||||
@@ -150,7 +155,7 @@ public class DeckManager {
|
||||
}
|
||||
}
|
||||
|
||||
private Deck readDeck(File deckFile) {
|
||||
public static Deck readDeck(File deckFile) {
|
||||
|
||||
List<String> lines = new LinkedList<String>();
|
||||
|
||||
@@ -191,7 +196,6 @@ public class DeckManager {
|
||||
|
||||
}
|
||||
|
||||
|
||||
private static Deck readDeckOld(ListIterator<String> iterator) {
|
||||
|
||||
String line;
|
||||
@@ -273,7 +277,7 @@ public class DeckManager {
|
||||
File f = new File(deckDir, deriveFileName(deck.getName()) + ".dck");
|
||||
files.remove(f);
|
||||
BufferedWriter out = new BufferedWriter(new FileWriter(f));
|
||||
write(deck, out);
|
||||
writeDeck(deck, out);
|
||||
out.close();
|
||||
}
|
||||
//delete the files that were not written out: the decks that were deleted
|
||||
@@ -291,7 +295,7 @@ public class DeckManager {
|
||||
f.mkdir();
|
||||
for (int i = 0; i < e.getValue().length; i++) {
|
||||
BufferedWriter out = new BufferedWriter(new FileWriter(new File(f, i + ".dck")));
|
||||
write(e.getValue()[i], out);
|
||||
writeDeck(e.getValue()[i], out);
|
||||
out.close();
|
||||
}
|
||||
}
|
||||
@@ -305,11 +309,11 @@ public class DeckManager {
|
||||
*/
|
||||
} catch (IOException ex) {
|
||||
ErrorViewer.showError(ex);
|
||||
throw new RuntimeException("DeckManager : write() error, " + ex.getMessage());
|
||||
throw new RuntimeException("DeckManager : writeDeck() error, " + ex.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private void write(Deck d, BufferedWriter out) throws IOException {
|
||||
private static void writeDeck(Deck d, BufferedWriter out) throws IOException {
|
||||
out.write("[metadata]\n");
|
||||
|
||||
for (Entry<String, String> entry : d.getMetadata()) {
|
||||
@@ -327,7 +331,7 @@ public class DeckManager {
|
||||
}
|
||||
}
|
||||
|
||||
private Map<String, Integer> count(List<String> src) {
|
||||
private static Map<String, Integer> count(List<String> src) {
|
||||
Map<String, Integer> result = new HashMap<String, Integer>();
|
||||
for (String s : src) {
|
||||
Integer dstValue = result.get(s);
|
||||
@@ -341,7 +345,16 @@ public class DeckManager {
|
||||
return result;
|
||||
}
|
||||
|
||||
public Deck getDeck(String deckName) {
|
||||
return deckMap.get(deckName);
|
||||
public static void writeDeck(Deck d, File f){
|
||||
try {
|
||||
BufferedWriter writer = new BufferedWriter(new FileWriter(f));
|
||||
writeDeck(d, writer);
|
||||
|
||||
writer.close();
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user