diff --git a/openide.loaders/src/org/openide/actions/SaveAsAction.java b/openide.loaders/src/org/openide/actions/SaveAsAction.java --- a/openide.loaders/src/org/openide/actions/SaveAsAction.java +++ b/openide.loaders/src/org/openide/actions/SaveAsAction.java @@ -64,6 +64,7 @@ import org.openide.util.LookupEvent; import org.openide.util.LookupListener; import org.openide.util.NbBundle; +import org.openide.util.NbPreferences; import org.openide.util.Utilities; import org.openide.util.WeakListeners; import org.openide.windows.TopComponent; @@ -141,6 +142,7 @@ } try { + NbPreferences.forModule(SaveAsAction.class).put("SAVE_AS_TARGET_PATH", FileUtil.toFile(newFolder).getCanonicalPath()); //NOI18N saveAs.saveAs( newFolder, newFile.getName() ); } catch( IOException ioE ) { Exceptions.attachLocalizedMessage( ioE, @@ -170,9 +172,16 @@ JFileChooser chooser = new JFileChooser(); chooser.setDialogTitle( NbBundle.getMessage(DataObject.class, "LBL_SaveAsTitle" ) ); //NOI18N chooser.setMultiSelectionEnabled( false ); + String targetFolderPath = NbPreferences.forModule(SaveAsAction.class).get("SAVE_AS_TARGET_PATH", ""); // NOI18N + File targetFolder; + if (targetFolderPath.equals("")) { // NOI18N + targetFolder = newFile.getParentFile(); + } else { + targetFolder = new File(targetFolderPath); + } if( null != newFile ) { chooser.setSelectedFile( newFile ); - FileUtil.preventFileChooserSymlinkTraversal( chooser, newFile.getParentFile() ); + FileUtil.preventFileChooserSymlinkTraversal( chooser, targetFolder ); } File origFile = newFile; if( JFileChooser.APPROVE_OPTION != chooser.showSaveDialog( WindowManager.getDefault().getMainWindow() ) ) {