Package uk.ac.starlink.util.gui

# Class BasicFileFilter

java.lang.Object
javax.swing.filechooser.FileFilter
uk.ac.starlink.util.gui.BasicFileFilter

All Implemented Interfaces:
  `FilenameFilter`

public class BasicFileFilter extends FileFilter implements FilenameFilter
A FileFilter for configuring a `JFileChooser` to only show files that have one of a set of file extensions. Also implements FilenameFilter to provide similar services for filtering directory contents using the `File` class (see `File.listFiles()`).

Example - create filters for HDS and FITS files and use with a BasicFileChooser.

         BasicFileChooser chooser = new BasicFileChooser();
         BasicFileFilter fitsFilter = new BasicFileFilter(
                       new String{ "fit", "fits" }, "FITS files" )
         chooser.addChoosableFileFilter( fitsFilter );
         BasicFileFilter hdsFilter =
                         new BasicFileFilter( "hds", "HDS container files" );
         chooser.addChoosableFileFilter( hdsFilter );
         chooser.showOpenDialog( this );

Example - filter the files in a directory.

       BasicFileFilter idsFilter = new BasicFileFilter( "ids" );
       File dir = new File( "." );
       File[] files = dir.listFiles( idsFilter );

Version:
  $Id$
Author:
  Jeff Dinkins, Peter W. Draper

## Constructor Summary

Constructors
Constructor
Description
`BasicFileFilter()`
Creates a file filter.
`BasicFileFilter(String extension)`
Creates a file filter that accepts files with the given extension.
`BasicFileFilter(String[] filters)`
Creates a file filter from the given string array.
`BasicFileFilter(String[] filters, String description)`
Creates a file filter from the given string array and description.
`BasicFileFilter(String extension, String description)`
Creates a file filter that accepts the given file type.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`accept(File f)`
Return true if this file should be shown in the directory pane, false if it shouldn't.
`boolean`
`accept(File dir, String name)`
`void`
`addExtension(String extension)`
Adds a filetype "dot" extension to filter against.
`String`
`getDescription()`
Returns the human readable description of this filter.
`static String`
`getExtension(File f)`
Return the extension of a file's name.
`static String`
`getExtension(String name)`
Return the extension of a file's name.
`boolean`
`isExtensionListInDescription()`
Returns whether the extension list (.jpg, .gif, etc) should show up in the human readable description.
`void`
`setDescription(String description)`
Sets the human readable description of this filter.
`void`
`setExtensionListInDescription(boolean b)`
Determines whether the extension list (.jpg, .gif, etc) should show up in the human readable description.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### BasicFileFilter

public BasicFileFilter()
Creates a file filter. If no filters are added, then all files are accepted.

See Also:
  - `addExtension(java.lang.String)`

### BasicFileFilter

public BasicFileFilter(String extension)
Creates a file filter that accepts files with the given extension. Example: new BasicFileFilter("jpg");

See Also:
  - `addExtension(java.lang.String)`

### BasicFileFilter

public BasicFileFilter(String extension, String description)
Creates a file filter that accepts the given file type. Example: new BasicFileFilter("jpg", "JPEG Image Images"); Note that the "." before the extension is not needed. If provided, it will be ignored.

See Also:
  - `addExtension(java.lang.String)`

### BasicFileFilter

public BasicFileFilter(String[] filters)
Creates a file filter from the given string array. Example: new BasicFileFilter(String {"gif", "jpg"}); Note that the "." before the extension is not needed and will be ignored.

See Also:
  - `addExtension(java.lang.String)`

### BasicFileFilter

public BasicFileFilter(String[] filters, String description)
Creates a file filter from the given string array and description. Example: new BasicFileFilter(String {"gif", "jpg"}, "Gif and JPG Images"); Note that the "." before the extension is not needed and will be ignored.

See Also:
  - `addExtension(java.lang.String)`

## Method Details

### accept

public boolean accept(File f)
Return true if this file should be shown in the directory pane, false if it shouldn't. Files that begin with "." are ignored.

Specified by:
  `accept` in class `FileFilter`
See Also:
  - `FileFilter.accept(java.io.File)`

### getExtension

public static String getExtension(String name)
Return the extension of a file's name.

### getExtension

public static String getExtension(File f)
Return the extension of a file's name.

Parameters:
  `f` - the File.

### addExtension

public void addExtension(String extension)
Adds a filetype "dot" extension to filter against. For example: the following code will create a filter that filters out all files except those that end in ".jpg" and ".tif": BasicFileFilter filter = new BasicFileFilter(); filter.addExtension("jpg"); filter.addExtension("tif"); Note that the "." before the extension is not needed and will be ignored.

### getDescription

public String getDescription()
Returns the human readable description of this filter. For example: "JPEG and GIF Image Files (*.jpg, *.gif)"

Specified by:
  `getDescription` in class `FileFilter`

### setDescription

public void setDescription(String description)
Sets the human readable description of this filter. For example: filter.setDescription("Gif and JPG Images");

### setExtensionListInDescription

public void setExtensionListInDescription(boolean b)
Determines whether the extension list (.jpg, .gif, etc) should show up in the human readable description. Only relevent if a description was provided in the constructor or using setDescription();

### isExtensionListInDescription

public boolean isExtensionListInDescription()
Returns whether the extension list (.jpg, .gif, etc) should show up in the human readable description. Only relevent if a description was provided in the constructor or using setDescription();

### accept

public boolean accept(File dir, String name)

Specified by:
  `accept` in interface `FilenameFilter`