X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FJalviewFileChooser.java;h=0d78bda4397c6c24a1acb1ddc560a186d807b28d;hb=c17e378d6f5fd831af5969d6ba815619dfb54a65;hp=8fc5ddd844673249b042082c8138d34ba427848f;hpb=bebc8c1502441eee34996343ecd785788f5b1def;p=jalview.git diff --git a/src/jalview/io/JalviewFileChooser.java b/src/jalview/io/JalviewFileChooser.java index 8fc5ddd..0d78bda 100755 --- a/src/jalview/io/JalviewFileChooser.java +++ b/src/jalview/io/JalviewFileChooser.java @@ -259,62 +259,19 @@ public class JalviewFileChooser extends JFileChooser Cache.setProperty(BackupFiles.NS + "_FC_INCLUDE", String.valueOf(includeBackupFiles)); - if (Platform.isAMac()) + FileFilter f = jfc.getFileFilter(); + // deselect the selected file if it's no longer choosable + File selectedFile = jfc.getSelectedFile(); + if (selectedFile != null && !f.accept(selectedFile)) { - // This is a kludge. Cannot find out how to get the file list to - // refresh on its own! This works the best out of a number of - // different attempts! - FileFilter ff = jfc.getFileFilter(); - jfc.setFileFilter(jfc.getAcceptAllFileFilter()); - jfc.setFileFilter(ff); - - /* - jfc.setFileHidingEnabled(!jfc.isFileHidingEnabled()); - jfc.setFileHidingEnabled(!jfc.isFileHidingEnabled()); - */ - - /* - jfc.getRootPane() - .paintImmediately(jfc.getRootPane().getBounds()); - jfc.paintImmediately(jfc.getBounds()); - */ - - /* - Object o = jfc.getClientProperty( - CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY); - jfc.firePropertyChange(CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY, - o, o); - */ - - /* - File f = jfc.getSelectedFile(); jfc.setSelectedFile(null); - if (f != null) - { - jfc.setSelectedFile(f); - } - */ - - /* - Graphics g = jfc.getGraphics(); - jfc.update(g); - jfc.paintAll(g); - */ - - /* - jfc.setFileHidingEnabled(!jfc.isFileHidingEnabled()); - jfc.setFileHidingEnabled(!jfc.isFileHidingEnabled()); - */ - /* - jfc.invalidate(); - Component[] c = jfc.getComponents(); - for (int i = 0; i < c.length; i++) - { - c[i].invalidate(); - System.out.println("INVALIDATING " + c[i].getName()); - } - */ } + // fake the OK button changing (to force it to upate) + String s = jfc.getApproveButtonText(); + jfc.firePropertyChange( + APPROVE_BUTTON_TEXT_CHANGED_PROPERTY, null, s); + // fake the file filter changing (its behaviour actually has) + jfc.firePropertyChange(FILE_FILTER_CHANGED_PROPERTY, null, f); jfc.rescanCurrentDirectory(); jfc.revalidate();