* @param selected
* @return
*/
- public static JalviewFileChooser forRead(String directory, String selected)
+ public static JalviewFileChooser forRead(String directory,
+ String selected)
{
List<String> extensions = new ArrayList<String>();
List<String> descs = new ArrayList<String>();
public JalviewFileChooser(String extension, String desc)
{
this(Cache.getProperty("LAST_DIRECTORY"), new String[] { extension },
- new String[] { desc }, desc, true);
+ new String[]
+ { desc }, desc, true);
}
JalviewFileChooser(String dir, String[] extensions, String[] descs,
return null;
}
+ File ourselectedFile = null;
+
+ @Override
+ public File getSelectedFile()
+ {
+ File selfile = super.getSelectedFile();
+ if (selfile == null && ourselectedFile != null)
+ {
+ return ourselectedFile;
+ }
+ return selfile;
+ }
+
@Override
public int showSaveDialog(Component parent) throws HeadlessException
{
setDialogType(SAVE_DIALOG);
+ this.setSelectedFile(null);
int ret = showDialog(parent, MessageManager.getString("action.save"));
+ ourselectedFile = getSelectedFile();
if (getFileFilter() instanceof JalviewFileFilter)
{
JalviewFileFilter jvf = (JalviewFileFilter) getFileFilter();
- if (!jvf.accept(getSelectedFile()))
+ if (!jvf.accept(ourselectedFile))
{
- String withExtension = getSelectedFile() + "."
+ String withExtension = getSelectedFile().getName() + "."
+ jvf.getAcceptableExtension();
- setSelectedFile(new File(withExtension));
+ ourselectedFile = (new File(getCurrentDirectory(), withExtension));
+ setSelectedFile(ourselectedFile);
}
}
// TODO: ENSURE THAT FILES SAVED WITH A ':' IN THE NAME ARE REFUSED AND THE
// USER PROMPTED FOR A NEW FILENAME
if ((ret == JalviewFileChooser.APPROVE_OPTION)
- && getSelectedFile().exists())
+ && ourselectedFile.exists())
{
int confirm = JvOptionPane.showConfirmDialog(parent,
MessageManager.getString("label.overwrite_existing_file"),
}
});
- this.setBorder(new javax.swing.border.TitledBorder(MessageManager
- .getString("label.recently_opened")));
+ this.setBorder(new javax.swing.border.TitledBorder(
+ MessageManager.getString("label.recently_opened")));
final JScrollPane scroller = new JScrollPane(list);
@Override
public void run()
{
- scroller.getHorizontalScrollBar().setValue(
- scroller.getHorizontalScrollBar().getMaximum());
+ scroller.getHorizontalScrollBar()
+ .setValue(scroller.getHorizontalScrollBar().getMaximum());
}
});