mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18: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
|
}// for
|
||||||
|
|
||||||
topModel.resort();
|
topModel.resort();
|
||||||
|
topTable.repaint();
|
||||||
bottomModel.resort();
|
bottomModel.resort();
|
||||||
|
bottomTable.repaint();
|
||||||
}// updateDisplay
|
}// updateDisplay
|
||||||
|
|
||||||
public void 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++) {
|
for (int i = 0; i < deck.countMain(); i++) {
|
||||||
String cardName = deck.getMain(i);
|
String cardName = deck.getMain(i);
|
||||||
String setCode = "";
|
|
||||||
if (cardName.contains("|")) {
|
if (cardName.contains("|")) {
|
||||||
String s[] = cardName.split("\\|", 2);
|
String s[] = cardName.split("\\|", 2);
|
||||||
cardName = s[0];
|
cardName = s[0];
|
||||||
setCode = s[1];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
top.add(AllZone.CardFactory.getCard(cardName, AllZone.HumanPlayer));
|
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());
|
deckDisplay.updateDisplay(top, new CardList());
|
||||||
}//new draft
|
}//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() {
|
private FileFilter dckFilter = new FileFilter() {
|
||||||
@Override
|
@Override
|
||||||
@@ -408,7 +392,6 @@ public class Gui_DeckEditor_Menu extends JMenuBar implements NewConstants {
|
|||||||
JFileChooser chooser = new JFileChooser(previousDirectory);
|
JFileChooser chooser = new JFileChooser(previousDirectory);
|
||||||
|
|
||||||
chooser.addChoosableFileFilter(dckFilter);
|
chooser.addChoosableFileFilter(dckFilter);
|
||||||
chooser.addChoosableFileFilter(getFileFilter());
|
|
||||||
int returnVal = chooser.showOpenDialog(null);
|
int returnVal = chooser.showOpenDialog(null);
|
||||||
|
|
||||||
if (returnVal == JFileChooser.APPROVE_OPTION) {
|
if (returnVal == JFileChooser.APPROVE_OPTION) {
|
||||||
@@ -446,7 +429,7 @@ public class Gui_DeckEditor_Menu extends JMenuBar implements NewConstants {
|
|||||||
else if (file.getName().endsWith(".dck")) {
|
else if (file.getName().endsWith(".dck")) {
|
||||||
try {
|
try {
|
||||||
FileChannel srcChannel = new FileInputStream(file).getChannel();
|
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()));
|
+ (file.getName()));
|
||||||
if (!dst.createNewFile()) {
|
if (!dst.createNewFile()) {
|
||||||
JOptionPane.showMessageDialog(null, "Cannot import deck " + file.getName()
|
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());
|
dstChannel.transferFrom(srcChannel, 0, srcChannel.size());
|
||||||
srcChannel.close();
|
srcChannel.close();
|
||||||
dstChannel.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) {
|
} catch (Exception ex) {
|
||||||
ErrorViewer.showError(ex);
|
ErrorViewer.showError(ex);
|
||||||
throw new RuntimeException("Gui_DeckEditor_Menu : importDeck() error, " + 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
|
//write one Deck object or
|
||||||
//many Deck objects if it is a draft deck
|
//many Deck objects if it is a draft deck
|
||||||
Deck deck = getDeck();
|
Deck deck = getDeck();
|
||||||
Object write = deck;
|
|
||||||
|
|
||||||
deck.setName(filename.getName());
|
deck.setName(filename.getName());
|
||||||
|
|
||||||
@@ -640,14 +625,10 @@ public class Gui_DeckEditor_Menu extends JMenuBar implements NewConstants {
|
|||||||
|
|
||||||
//replace your deck
|
//replace your deck
|
||||||
d[0] = deck;
|
d[0] = deck;
|
||||||
write = d;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(filename));
|
DeckManager.writeDeck(deck, filename);
|
||||||
out.writeObject(write);
|
|
||||||
out.flush();
|
|
||||||
out.close();
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
ErrorViewer.showError(ex);
|
ErrorViewer.showError(ex);
|
||||||
throw new RuntimeException("Gui_DeckEditor_Menu : exportDeck() error, " + 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.setDialogTitle("Export Deck Filename");
|
||||||
save.setDialogType(JFileChooser.SAVE_DIALOG);
|
save.setDialogType(JFileChooser.SAVE_DIALOG);
|
||||||
save.addChoosableFileFilter(getFileFilter());
|
save.setFileFilter(dckFilter);
|
||||||
save.setSelectedFile(new File(currentDeckName + ".deck"));
|
|
||||||
|
|
||||||
int returnVal = save.showSaveDialog(null);
|
int returnVal = save.showSaveDialog(null);
|
||||||
|
|
||||||
@@ -776,17 +756,16 @@ public class Gui_DeckEditor_Menu extends JMenuBar implements NewConstants {
|
|||||||
|
|
||||||
previousDirectory = file.getParentFile();
|
previousDirectory = file.getParentFile();
|
||||||
|
|
||||||
if (check.endsWith(".deck")) {
|
if (check.endsWith(".dck")) {
|
||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return new File(check + ".deck");
|
return new File(check + ".dck");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}//getExportFilename()
|
}
|
||||||
|
|
||||||
|
|
||||||
private void openConstructed() {
|
private void openConstructed() {
|
||||||
if (debugPrint) {
|
if (debugPrint) {
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import static java.lang.String.format;
|
|||||||
import static java.util.Arrays.asList;
|
import static java.util.Arrays.asList;
|
||||||
|
|
||||||
|
|
||||||
//reads and write Deck objects
|
//reads and writeDeck Deck objects
|
||||||
public class DeckManager {
|
public class DeckManager {
|
||||||
private static FilenameFilter BDKFileFilter = new FilenameFilter() {
|
private static FilenameFilter BDKFileFilter = new FilenameFilter() {
|
||||||
public boolean accept(File dir, String name) {
|
public boolean accept(File dir, String name) {
|
||||||
@@ -51,11 +51,11 @@ public class DeckManager {
|
|||||||
}
|
}
|
||||||
this.deckMap = new HashMap<String, Deck>();
|
this.deckMap = new HashMap<String, Deck>();
|
||||||
this.boosterMap = new HashMap<String, Deck[]>();
|
this.boosterMap = new HashMap<String, Deck[]>();
|
||||||
readDir();
|
readAllDecks();
|
||||||
}
|
}
|
||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
ErrorViewer.showError(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);
|
return !boosterMap.keySet().contains(deckName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Deck getDeck(String deckName) {
|
||||||
|
return deckMap.get(deckName);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void addDeck(Deck deck) {
|
public void addDeck(Deck deck) {
|
||||||
if (deck.getDeckType().equals(Constant.GameType.Draft)) {
|
if (deck.getDeckType().equals(Constant.GameType.Draft)) {
|
||||||
throw new RuntimeException(
|
throw new RuntimeException(
|
||||||
@@ -126,7 +131,7 @@ public class DeckManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void readDir() {
|
public void readAllDecks() {
|
||||||
deckMap.clear();
|
deckMap.clear();
|
||||||
boosterMap.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>();
|
List<String> lines = new LinkedList<String>();
|
||||||
|
|
||||||
@@ -191,7 +196,6 @@ public class DeckManager {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static Deck readDeckOld(ListIterator<String> iterator) {
|
private static Deck readDeckOld(ListIterator<String> iterator) {
|
||||||
|
|
||||||
String line;
|
String line;
|
||||||
@@ -273,7 +277,7 @@ public class DeckManager {
|
|||||||
File f = new File(deckDir, deriveFileName(deck.getName()) + ".dck");
|
File f = new File(deckDir, deriveFileName(deck.getName()) + ".dck");
|
||||||
files.remove(f);
|
files.remove(f);
|
||||||
BufferedWriter out = new BufferedWriter(new FileWriter(f));
|
BufferedWriter out = new BufferedWriter(new FileWriter(f));
|
||||||
write(deck, out);
|
writeDeck(deck, out);
|
||||||
out.close();
|
out.close();
|
||||||
}
|
}
|
||||||
//delete the files that were not written out: the decks that were deleted
|
//delete the files that were not written out: the decks that were deleted
|
||||||
@@ -291,7 +295,7 @@ public class DeckManager {
|
|||||||
f.mkdir();
|
f.mkdir();
|
||||||
for (int i = 0; i < e.getValue().length; i++) {
|
for (int i = 0; i < e.getValue().length; i++) {
|
||||||
BufferedWriter out = new BufferedWriter(new FileWriter(new File(f, i + ".dck")));
|
BufferedWriter out = new BufferedWriter(new FileWriter(new File(f, i + ".dck")));
|
||||||
write(e.getValue()[i], out);
|
writeDeck(e.getValue()[i], out);
|
||||||
out.close();
|
out.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -305,11 +309,11 @@ public class DeckManager {
|
|||||||
*/
|
*/
|
||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
ErrorViewer.showError(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");
|
out.write("[metadata]\n");
|
||||||
|
|
||||||
for (Entry<String, String> entry : d.getMetadata()) {
|
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>();
|
Map<String, Integer> result = new HashMap<String, Integer>();
|
||||||
for (String s : src) {
|
for (String s : src) {
|
||||||
Integer dstValue = result.get(s);
|
Integer dstValue = result.get(s);
|
||||||
@@ -341,7 +345,16 @@ public class DeckManager {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Deck getDeck(String deckName) {
|
public static void writeDeck(Deck d, File f){
|
||||||
return deckMap.get(deckName);
|
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