package jreepad.ui; import java.io.File; import javax.swing.filechooser.FileFilter; /** * File filter, which accepts only files with the given extension. */ public class ExtensionFileFilter extends FileFilter { /** * Description of this filter. */ private String description; /** * Allowed extension. */ private String extension; /** * Lowercase version of the extension. */ private String lowercaseExtension; public ExtensionFileFilter(String description, String extension) { this.description = description; this.extension = extension; this.lowercaseExtension = extension.toLowerCase(); } /** * Tests whether the given file has the appropriate extension. */ public boolean accept(File f) { if (f == null) return false; if (f.isDirectory()) return true; String fileName = f.getName(); int i = fileName.lastIndexOf('.'); if (i <= 0 || i >= fileName.length() - 1) return false; String fileExtension = fileName.substring(i + 1).toLowerCase(); if (fileExtension.equals(lowercaseExtension)) return true; return false; } /** * Returns the description of this filter. */ public String getDescription() { return description; } /** * Returns the filtered file extension. */ public String getExtension() { return extension; } }