mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 03:38:01 +00:00
Fix saving a deck to replace an exiting deck with the same name in desktop UI.
This commit is contained in:
@@ -30,6 +30,7 @@ public class SEditorIO {
|
|||||||
final DeckController<?> controller = CDeckEditorUI.SINGLETON_INSTANCE.getCurrentEditorController().getDeckController();
|
final DeckController<?> controller = CDeckEditorUI.SINGLETON_INSTANCE.getCurrentEditorController().getDeckController();
|
||||||
final String name = VCurrentDeck.SINGLETON_INSTANCE.getTxfTitle().getText();
|
final String name = VCurrentDeck.SINGLETON_INSTANCE.getTxfTitle().getText();
|
||||||
final String deckStr = DeckProxy.getDeckString(controller.getModelPath(), name);
|
final String deckStr = DeckProxy.getDeckString(controller.getModelPath(), name);
|
||||||
|
boolean performSave = false;
|
||||||
|
|
||||||
// Warn if no name
|
// Warn if no name
|
||||||
if (name == null || name.isEmpty()) {
|
if (name == null || name.isEmpty()) {
|
||||||
@@ -39,26 +40,21 @@ public class SEditorIO {
|
|||||||
}
|
}
|
||||||
// Confirm if overwrite
|
// Confirm if overwrite
|
||||||
else if (controller.fileExists(name)) {
|
else if (controller.fileExists(name)) {
|
||||||
boolean confirmResult = true;
|
|
||||||
if (!StringUtils.equals(name, controller.getModelName())) { // prompt only if name was changed
|
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?",
|
"There is already a deck named '" + name + "'. Overwrite?",
|
||||||
"Overwrite Deck?");
|
"Overwrite Deck?");
|
||||||
}
|
} else {
|
||||||
|
performSave = true;
|
||||||
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();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Confirm if a new deck will be created
|
// Confirm if a new deck will be created
|
||||||
else if (FOptionPane.showConfirmDialog("This will create a new deck named '" +
|
else if (FOptionPane.showConfirmDialog("This will create a new deck named '" +
|
||||||
name + "'. Continue?", "Create Deck?")) {
|
name + "'. Continue?", "Create Deck?")) {
|
||||||
|
performSave = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (performSave) {
|
||||||
controller.saveAs(name);
|
controller.saveAs(name);
|
||||||
CAllDecks.SINGLETON_INSTANCE.refresh(); //pull new deck into deck list and select it
|
CAllDecks.SINGLETON_INSTANCE.refresh(); //pull new deck into deck list and select it
|
||||||
VAllDecks.SINGLETON_INSTANCE.getLstDecks().setSelectedString(deckStr);
|
VAllDecks.SINGLETON_INSTANCE.getLstDecks().setSelectedString(deckStr);
|
||||||
|
|||||||
Reference in New Issue
Block a user