Fix renaming and deleting conquests

This commit is contained in:
drdev
2016-01-03 01:16:35 +00:00
parent aaf55a3c76
commit 7d752c12b1

View File

@@ -33,6 +33,7 @@ import forge.toolbox.FEvent;
import forge.toolbox.FList; import forge.toolbox.FList;
import forge.toolbox.FTextArea; import forge.toolbox.FTextArea;
import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FEvent.FEventHandler;
import forge.util.FileUtil;
import forge.util.ThreadUtil; import forge.util.ThreadUtil;
import forge.util.Utils; import forge.util.Utils;
import forge.util.gui.SOptionPane; import forge.util.gui.SOptionPane;
@@ -98,14 +99,14 @@ public class LoadConquestScreen extends LaunchScreen {
} }
} }
// Populate list with available quest data. // Populate list with available conquest data.
lstConquests.setConquests(new ArrayList<ConquestData>(arrConquests.values())); lstConquests.setConquests(new ArrayList<ConquestData>(arrConquests.values()));
// If there are quests available, force select. // If there are quests available, force select.
if (arrConquests.size() > 0) { if (arrConquests.size() > 0) {
final String questname = FModel.getConquestPreferences().getPref(CQPref.CURRENT_CONQUEST); final String questname = FModel.getConquestPreferences().getPref(CQPref.CURRENT_CONQUEST);
// Attempt to select previous quest. // Attempt to select previous conquest.
if (arrConquests.get(questname) != null) { if (arrConquests.get(questname) != null) {
lstConquests.setSelectedConquest(arrConquests.get(questname)); lstConquests.setSelectedConquest(arrConquests.get(questname));
} }
@@ -181,14 +182,14 @@ public class LoadConquestScreen extends LaunchScreen {
ConquestMenu.launchPlanarConquest(LaunchReason.LoadConquest); ConquestMenu.launchPlanarConquest(LaunchReason.LoadConquest);
} }
private void renameConquest(final ConquestData quest) { private void renameConquest(final ConquestData conquest) {
if (quest == null) { return; } if (conquest == null) { return; }
ThreadUtil.invokeInGameThread(new Runnable() { ThreadUtil.invokeInGameThread(new Runnable() {
@Override @Override
public void run() { public void run() {
String questName; String questName;
String oldConquestName = quest.getName(); String oldConquestName = conquest.getName();
while (true) { while (true) {
questName = SOptionPane.showInputDialog("Enter new name for conquest:", "Rename Conquest", null, oldConquestName); questName = SOptionPane.showInputDialog("Enter new name for conquest:", "Rename Conquest", null, oldConquestName);
if (questName == null) { return; } if (questName == null) { return; }
@@ -209,32 +210,32 @@ public class LoadConquestScreen extends LaunchScreen {
} }
} }
if (exists) { if (exists) {
SOptionPane.showMessageDialog("A conquest already exists with that name. Please pick another quest name."); SOptionPane.showMessageDialog("A conquest already exists with that name. Please pick another conquest name.");
continue; continue;
} }
break; break;
} }
quest.rename(questName); conquest.rename(questName);
} }
}); });
} }
private void deleteConquest(final ConquestData quest) { private void deleteConquest(final ConquestData conquest) {
if (quest == null) { return; } if (conquest == null) { return; }
ThreadUtil.invokeInGameThread(new Runnable() { ThreadUtil.invokeInGameThread(new Runnable() {
@Override @Override
public void run() { public void run() {
if (!SOptionPane.showConfirmDialog( if (!SOptionPane.showConfirmDialog(
"Are you sure you want to delete '" + quest.getName() + "'?", "Are you sure you want to delete '" + conquest.getName() + "'?",
"Delete Conquest", "Delete", "Cancel")) { "Delete Conquest", "Delete", "Cancel")) {
return; return;
} }
new File(ForgeConstants.CONQUEST_SAVE_DIR, quest.getName() + ".dat").delete(); FileUtil.deleteDirectory(conquest.getDirectory());
lstConquests.removeConquest(quest); lstConquests.removeConquest(conquest);
updateEnabledButtons(); updateEnabledButtons();
} }
}); });