Add Save As support to mobile app

This commit is contained in:
drdev
2015-10-03 19:16:59 +00:00
parent 7c0631b1ab
commit f927a48405

View File

@@ -328,6 +328,20 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
setSelectedPage(getMainDeckPage()); //select main deck page if needed so main deck if visible below dialog setSelectedPage(getMainDeckPage()); //select main deck page if needed so main deck if visible below dialog
} }
})); }));
addItem(new FMenuItem("Save As...", FSkinImage.SAVEAS, new FEventHandler() {
@Override
public void handleEvent(FEvent e) {
String defaultName = editorType.getController().getNextAvailableName();
FOptionPane.showInputDialog("Enter name for new copy of deck", defaultName, new Callback<String>() {
@Override
public void run(String result) {
if (!StringUtils.isEmpty(result)) {
editorType.getController().saveAs(result);
}
}
});
}
}));
} }
if (allowRename()) { if (allowRename()) {
addItem(new FMenuItem("Rename Deck", FSkinImage.EDIT, new FEventHandler() { addItem(new FMenuItem("Rename Deck", FSkinImage.EDIT, new FEventHandler() {
@@ -1483,6 +1497,23 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
currentFolder.delete(oldName); //delete deck with old name currentFolder.delete(oldName); //delete deck with old name
} }
public String getNextAvailableName() {
String name = model.getName();
int idx = name.lastIndexOf('(');
if (idx != -1) {
name = name.substring(0, idx).trim(); //strip old number
}
String baseName = name;
int number = 2;
do {
name = baseName + " (" + number + ")";
number++;
} while (fileExists(name));
return name;
}
public boolean isSaved() { public boolean isSaved() {
return saved; return saved;
} }