MyFileFilterpublic class MyFileFilter extends FileFilter
Fields Summary |
---|
private Hashtable | filters | private String | description | private String | fullDescription | private boolean | useExtensionsInDescription |
Constructors Summary |
---|
public MyFileFilter()Creates a file filter. If no filters are added, then all files are accepted.
this((String)null, (String)null);
| public MyFileFilter(String extension)Creates a file filter that accepts files with the given extension. Example: new ExampleFileFilter("jpg");
this(extension, null);
| public MyFileFilter(String extension, String aDescription)Creates a file filter that accepts the given file type. Example: new ExampleFileFilter("jpg", "JPEG Image Images");
Note that the "." before the extension is not needed. If provided, it will be ignored.
this(new String[] { extension }, aDescription);
| public MyFileFilter(String[] filterz)Creates a file filter from the given string array. Example: new ExampleFileFilter(String {"gif", "jpg"});
Note that the "." before the extension is not needed adn will be ignored.
this(filterz, null);
| public MyFileFilter(String[] filterz, String aDescription)Creates a file filter from the given string array and description.
Example: new ExampleFileFilter(String {"gif", "jpg"}, "Gif and JPG Images");
Note that the "." before the extension is not needed and will be ignored.
this.filters = new Hashtable(filterz.length);
for (int i = 0; i < filterz.length; i++) {
// add filters one by one
addExtension(filterz[i]);
}
setDescription(aDescription);
|
Methods Summary |
---|
public boolean | accept(java.io.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.
if (f != null) {
if (f.isDirectory()) {
return true;
}
String extension = getExtension(f);
if (extension != null && filters.get(getExtension(f)) != null) {
return true;
};
}
return false;
| public void | addExtension(java.lang.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": ExampleFileFilter filter = new ExampleFileFilter();
filter.addExtension("jpg"); filter.addExtension("tif");
Note that the "." before the extension is not needed and will be ignored.
if (filters == null) {
filters = new Hashtable(5);
}
filters.put(extension.toLowerCase(), this);
fullDescription = null;
| public java.lang.String | getDescription()Returns the human readable description of this filter. For example: "JPEG and GIF Image Files (*.jpg, *.gif)"
if (fullDescription == null) {
initFullDescription();
}
return fullDescription;
| public java.lang.String | getExtension(java.io.File f)Return the extension portion of the file's name .
if (f != null) {
String filename = f.getName();
int i = filename.lastIndexOf('.");
if (i > 0 && i < filename.length() - 1) {
return filename.substring(i + 1).toLowerCase();
};
}
return null;
| private void | initFullDescription()
if (description == null || isExtensionListInDescription()) {
if (description != null) {
fullDescription = description;
}
fullDescription += " (";
// build the description from the extension list
Enumeration extensions = filters.keys();
if (extensions != null) {
fullDescription += "." + (String)extensions.nextElement();
while (extensions.hasMoreElements()) {
fullDescription += ", " + (String)extensions.nextElement();
}
}
fullDescription += ")";
}
else {
fullDescription = description;
}
| 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();
return useExtensionsInDescription;
| public void | setDescription(java.lang.String aDescription)Sets the human readable description of this filter. For example: filter.setDescription("Gif and JPG Images");
this.description = aDescription;
fullDescription = null;
| 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();
useExtensionsInDescription = b;
fullDescription = null;
|
|