better behaviour for initial directory in file dialogs. fixes #4

This commit is contained in:
Gered 2016-01-03 14:21:39 -05:00
parent 5081c300cc
commit e3b0e1be80

View file

@ -132,10 +132,9 @@ final class Actions {
} else if ( source == MenuItem.SAVE ) { } else if ( source == MenuItem.SAVE ) {
run.saveLiveTimes( !run.isPersonalBest() ); run.saveLiveTimes( !run.isPersonalBest() );
run.reset(); run.reset();
save(); save(this.file);
} else if ( source == MenuItem.SAVE_AS ) { } else if ( source == MenuItem.SAVE_AS ) {
file = null; save(null);
save();
} else if ( source == MenuItem.RESET ) { } else if ( source == MenuItem.RESET ) {
reset(); reset();
} else if ( source == MenuItem.LOCK ) { } else if ( source == MenuItem.LOCK ) {
@ -247,6 +246,8 @@ final class Actions {
private File selectFile(FILE_CHOOSER_TYPE dialogType) { private File selectFile(FILE_CHOOSER_TYPE dialogType) {
int action = -1; int action = -1;
fileChooser.setCurrentDirectory(this.file);
if (dialogType == FILE_CHOOSER_TYPE.OPEN) if (dialogType == FILE_CHOOSER_TYPE.OPEN)
action = fileChooser.showOpenDialog(master); action = fileChooser.showOpenDialog(master);
else if (dialogType == FILE_CHOOSER_TYPE.SAVE) else if (dialogType == FILE_CHOOSER_TYPE.SAVE)
@ -295,7 +296,7 @@ final class Actions {
else if ( option == JOptionPane.YES_OPTION ) { else if ( option == JOptionPane.YES_OPTION ) {
run.saveLiveTimes( !betterRun ); run.saveLiveTimes( !betterRun );
run.reset(); run.reset();
save(); save(this.file);
confirmed = true; confirmed = true;
} }
} }
@ -391,13 +392,16 @@ final class Actions {
/** /**
* Saves the currently opened run to the currently selected file. If no * Saves the currently opened run to the currently selected file. If no
* file has been selected, the user is asked for one. * file has been selected, the user is asked for one.
*
* @param file the file to save to, or if null, the user is prompted to select one
*/ */
private void save() { private void save(File file) {
if ( file == null ) { if ( file == null ) {
if ( ( file = selectFile(FILE_CHOOSER_TYPE.SAVE) ) == null ) { if ( ( file = selectFile(FILE_CHOOSER_TYPE.SAVE) ) == null ) {
return; return;
} }
} }
this.file = file;
Settings.coordinates.set( master.getLocationOnScreen(), true ); Settings.coordinates.set( master.getLocationOnScreen(), true );
Settings.dimension.set( master.getSize(), true ); Settings.dimension.set( master.getSize(), true );