Import of Ekit 0.9h
[old-projects.git] / ekit / com / hexidec / ekit / component / MutableFilter.java
CommitLineData
6ce136da
JL
1/*
2GNU Lesser General Public License
3
4MutableFilter
5Copyright (C) 2000 Howard Kistler
6
7This library is free software; you can redistribute it and/or
8modify it under the terms of the GNU Lesser General Public
9License as published by the Free Software Foundation; either
10version 2.1 of the License, or (at your option) any later version.
11
12This library is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15Lesser General Public License for more details.
16
17You should have received a copy of the GNU Lesser General Public
18License along with this library; if not, write to the Free Software
19Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20*/
21
22package com.hexidec.ekit.component;
23
24import java.io.File;
25import javax.swing.filechooser.FileFilter;
26
27/** Class for providing JFileChooser with a FileFilter
28 */
29public class MutableFilter extends FileFilter
30{
31 private String[] acceptableExtensions;
32 private String descriptor;
33
34 public MutableFilter(String[] exts, String desc)
35 {
36 acceptableExtensions = exts;
37 StringBuffer strbDesc = new StringBuffer(desc + " (");
38 for(int i = 0; i < acceptableExtensions.length; i++)
39 {
40 if(i > 0) { strbDesc.append(", "); }
41 strbDesc.append("*." + acceptableExtensions[i]);
42 }
43 strbDesc.append(")");
44 descriptor = strbDesc.toString();
45 }
46
47 public boolean accept(File file)
48 {
49 if(file.isDirectory())
50 {
51 return true;
52 }
53 String fileName = file.getName();
54 String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length()).toLowerCase();
55 if(fileExt != null)
56 {
57 for(int i = 0; i < acceptableExtensions.length; i++)
58 {
59 if(fileExt.equals(acceptableExtensions[i]))
60 {
61 return true;
62 }
63 }
64 return false;
65 }
66 else
67 {
68 return false;
69 }
70 }
71
72 public String getDescription()
73 {
74 return descriptor;
75 }
76}
77