[fixes #899] Use only filename in save/export filename input

This commit is contained in:
Sibo Van Gool 2021-09-06 23:33:05 +02:00
parent 46b974cae7
commit b8c9bd94d6
2 changed files with 22 additions and 4 deletions

View File

@ -34,7 +34,7 @@ import net.sf.openrocket.util.ArrayList;
*/
public class OpenRocketDocument implements ComponentChangeListener {
private static final Logger log = LoggerFactory.getLogger(OpenRocketDocument.class);
private final List<String> file_extensions = Arrays.asList("ork", "rkt"); // Possible extensions of an OpenRocket document
/**
* The minimum number of undo levels that are stored.
*/
@ -193,6 +193,23 @@ public class OpenRocketDocument implements ComponentChangeListener {
public File getFile() {
return file;
}
/**
* returns the File handler object for the document without the file extension (e.g. '.ork' removed)
* @return the File handler object for the document without the file extension
*/
public File getFileNoExtension() {
if (file == null) return null;
int index = file.getAbsolutePath().lastIndexOf('.');
if (index > 0) {
String filename = file.getAbsolutePath().substring(0, index);
String extension = file.getAbsolutePath().substring(index + 1);
if (file_extensions.contains(extension)) {
return new File(filename);
}
}
return file;
}
/**
* set the file handler object for the document

View File

@ -3,6 +3,9 @@ package net.sf.openrocket.gui.main;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.swing.JFileChooser;
@ -33,12 +36,11 @@ public class SaveAsFileChooser extends JFileChooser {
this.setAcceptAllFileFilterUsed(true);
File defaultFilename = document.getFile();
File defaultFilename = document.getFileNoExtension();
switch( type ) {
default:
case OPENROCKET:
defaultFilename = FileHelper.forceExtension(defaultFilename,"ork");
this.setDialogTitle(trans.get("saveAs.openrocket.title"));
storageChooser = new StorageOptionChooser(document, document.getDefaultStorageOptions());
this.setAccessory(storageChooser);
@ -46,7 +48,6 @@ public class SaveAsFileChooser extends JFileChooser {
this.setFileFilter(FileHelper.OPENROCKET_DESIGN_FILTER);
break;
case ROCKSIM:
defaultFilename = FileHelper.forceExtension(defaultFilename,"rkt");
this.setDialogTitle(trans.get("saveAs.rocksim.title"));
storageChooser = null;
this.addChoosableFileFilter(FileHelper.ROCKSIM_DESIGN_FILTER);