1 30 package browser; 31 32 import java.io.File ; 33 import java.util.Hashtable ; 34 import java.util.Enumeration ; 35 import javax.swing.*; 36 import javax.swing.filechooser.*; 37 38 57 public class ExampleFileFilter extends FileFilter { 58 59 private static String TYPE_UNKNOWN = "Type Unknown"; 60 private static String HIDDEN_FILE = "Hidden File"; 61 62 private Hashtable filters = null; 63 private String description = null; 64 private String fullDescription = null; 65 private boolean useExtensionsInDescription = true; 66 67 73 public ExampleFileFilter() { 74 this.filters = new Hashtable (); 75 } 76 77 83 public ExampleFileFilter(String extension) { 84 this(extension,null); 85 } 86 87 96 public ExampleFileFilter(String extension, String description) { 97 this(); 98 if(extension!=null) addExtension(extension); 99 if(description!=null) setDescription(description); 100 } 101 102 111 public ExampleFileFilter(String [] filters) { 112 this(filters, null); 113 } 114 115 123 public ExampleFileFilter(String [] filters, String description) { 124 this(); 125 for (int i = 0; i < filters.length; i++) { 126 addExtension(filters[i]); 128 } 129 if(description!=null) setDescription(description); 130 } 131 132 141 public boolean accept(File f) { 142 if(f != null) { 143 if(f.isDirectory()) { 144 return true; 145 } 146 String extension = getExtension(f); 147 if(extension != null && filters.get(getExtension(f)) != null) { 148 return true; 149 }; 150 } 151 return false; 152 } 153 154 160 public String getExtension(File f) { 161 if(f != null) { 162 String filename = f.getName(); 163 int i = filename.lastIndexOf('.'); 164 if(i>0 && i<filename.length()-1) { 165 return filename.substring(i+1).toLowerCase(); 166 }; 167 } 168 return null; 169 } 170 171 183 public void addExtension(String extension) { 184 if(filters == null) { 185 filters = new Hashtable (5); 186 } 187 filters.put(extension.toLowerCase(), this); 188 fullDescription = null; 189 } 190 191 192 201 public String getDescription() { 202 if(fullDescription == null) { 203 if(description == null || isExtensionListInDescription()) { 204 fullDescription = description==null ? "(" : description + " ("; 205 Enumeration extensions = filters.keys(); 207 if(extensions != null) { 208 fullDescription += "." + (String ) extensions.nextElement(); 209 while (extensions.hasMoreElements()) { 210 fullDescription += ", " + (String ) extensions.nextElement(); 211 } 212 } 213 fullDescription += ")"; 214 } else { 215 fullDescription = description; 216 } 217 } 218 return fullDescription; 219 } 220 221 229 public void setDescription(String description) { 230 this.description = description; 231 fullDescription = null; 232 } 233 234 245 public void setExtensionListInDescription(boolean b) { 246 useExtensionsInDescription = b; 247 fullDescription = null; 248 } 249 250 261 public boolean isExtensionListInDescription() { 262 return useExtensionsInDescription; 263 } 264 } 265 | Popular Tags |