Index: src/org/netbeans/modules/quickfilechooser/ChooserComponentUI.java =================================================================== RCS file: /cvs/contrib/quickfilechooser/src/org/netbeans/modules/quickfilechooser/ChooserComponentUI.java,v retrieving revision 1.6 diff -u -w -r1.6 ChooserComponentUI.java --- src/org/netbeans/modules/quickfilechooser/ChooserComponentUI.java 9 Aug 2005 18:02:32 -0000 1.6 +++ src/org/netbeans/modules/quickfilechooser/ChooserComponentUI.java 12 Aug 2005 21:45:36 -0000 @@ -57,6 +57,7 @@ import javax.swing.KeyStroke; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; +import javax.swing.filechooser.FileFilter; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicFileChooserUI; @@ -308,6 +309,8 @@ } } else if (JFileChooser.CONTROL_BUTTONS_ARE_SHOWN_CHANGED_PROPERTY.equals(name)) { buttons.setVisible(getFileChooser().getControlButtonsAreShown()); + } else if (JFileChooser.CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY.equals(name)) { + refreshCompletions(); } // XXX may have to handle JFileChooser.FILE_CHANGED_PROPERTY too } @@ -330,6 +333,9 @@ Arrays.sort(kids, Collator.getInstance()); for (int i = 0; i < kids.length; i++) { File kid = new File(d, kids[i]); + if (isFilteredOut(kid)) { + continue; + } if (getFileChooser().getFileSelectionMode() == JFileChooser.DIRECTORIES_ONLY && !kid.isDirectory()) { continue; } @@ -365,6 +371,16 @@ } } updateButtons(); + } + + private boolean isFilteredOut(File file) { + FileFilter[] filters = getFileChooser().getChoosableFileFilters(); + for (int i = 0; i < filters.length; i++) { + if (!filters[i].accept(file)) { + return true; + } + } + return false; } private final class CompleteAction extends AbstractAction { Index: src/org/netbeans/modules/quickfilechooser/Demo.java =================================================================== RCS file: /cvs/contrib/quickfilechooser/src/org/netbeans/modules/quickfilechooser/Demo.java,v retrieving revision 1.4 diff -u -w -r1.4 Demo.java --- src/org/netbeans/modules/quickfilechooser/Demo.java 9 Aug 2005 17:58:52 -0000 1.4 +++ src/org/netbeans/modules/quickfilechooser/Demo.java 12 Aug 2005 21:45:36 -0000 @@ -18,6 +18,7 @@ import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JFileChooser; +import javax.swing.filechooser.FileFilter; import javax.swing.filechooser.FileView; public class Demo { @@ -38,6 +39,15 @@ } } return null; + } + }); + chooser.addChoosableFileFilter(new FileFilter() { + public boolean accept(File pathname) { + return pathname.isDirectory() || + pathname.getName().toLowerCase().endsWith(".html"); + } + public String getDescription() { + return "whatever, not shown by QFC yet"; } }); //chooser.setControlButtonsAreShown(false);