From 7bf25b3da8124f5cc9ec49fc25df94b4bb448e43 Mon Sep 17 00:00:00 2001 From: Myrd Date: Thu, 2 Jul 2015 22:27:20 +0000 Subject: [PATCH] Fix saving a deck to replace an exiting deck with the same name in desktop UI. --- .../forge/screens/deckeditor/SEditorIO.java | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/SEditorIO.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/SEditorIO.java index 090a68d1ac7..9d55ad9b6a6 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/SEditorIO.java +++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/SEditorIO.java @@ -30,6 +30,7 @@ public class SEditorIO { final DeckController controller = CDeckEditorUI.SINGLETON_INSTANCE.getCurrentEditorController().getDeckController(); final String name = VCurrentDeck.SINGLETON_INSTANCE.getTxfTitle().getText(); final String deckStr = DeckProxy.getDeckString(controller.getModelPath(), name); + boolean performSave = false; // Warn if no name if (name == null || name.isEmpty()) { @@ -39,26 +40,21 @@ public class SEditorIO { } // Confirm if overwrite else if (controller.fileExists(name)) { - boolean confirmResult = true; if (!StringUtils.equals(name, controller.getModelName())) { // prompt only if name was changed - confirmResult = FOptionPane.showConfirmDialog( + performSave = FOptionPane.showConfirmDialog( "There is already a deck named '" + name + "'. Overwrite?", "Overwrite Deck?"); - } - - if (confirmResult) { - controller.save(); - DeckProxy deck = VAllDecks.SINGLETON_INSTANCE.getLstDecks().stringToItem(deckStr); - if (deck != null) { //reload DeckProxy to pull changes into deck list - deck.reloadFromStorage(); - VAllDecks.SINGLETON_INSTANCE.getLstDecks().setSelectedItem(deck); - VAllDecks.SINGLETON_INSTANCE.getLstDecks().repaint(); - } + } else { + performSave = true; } } // Confirm if a new deck will be created else if (FOptionPane.showConfirmDialog("This will create a new deck named '" + name + "'. Continue?", "Create Deck?")) { + performSave = true; + } + + if (performSave) { controller.saveAs(name); CAllDecks.SINGLETON_INSTANCE.refresh(); //pull new deck into deck list and select it VAllDecks.SINGLETON_INSTANCE.getLstDecks().setSelectedString(deckStr);