1 7 34 35 package com.sun.tools.example.debug.gui; 36 37 import java.io.File ; 38 import java.util.Hashtable ; 39 import java.util.Enumeration ; 40 import javax.swing.*; 41 import javax.swing.filechooser.*; 42 43 45 64 65 public class JDBFileFilter extends FileFilter { 66 67 private static String TYPE_UNKNOWN = "Type Unknown"; 68 private static String HIDDEN_FILE = "Hidden File"; 69 70 private Hashtable filters = null; 71 private String description = null; 72 private String fullDescription = null; 73 private boolean useExtensionsInDescription = true; 74 75 81 public JDBFileFilter() { 82 this.filters = new Hashtable (); 83 } 84 85 91 public JDBFileFilter(String extension) { 92 this(extension,null); 93 } 94 95 104 public JDBFileFilter(String extension, String description) { 105 this(); 106 if(extension!=null) addExtension(extension); 107 if(description!=null) setDescription(description); 108 } 109 110 119 public JDBFileFilter(String [] filters) { 120 this(filters, null); 121 } 122 123 131 public JDBFileFilter(String [] filters, String description) { 132 this(); 133 for (int i = 0; i < filters.length; i++) { 134 addExtension(filters[i]); 136 } 137 if(description!=null) setDescription(description); 138 } 139 140 149 public boolean accept(File f) { 150 if(f != null) { 151 if(f.isDirectory()) { 152 return true; 153 } 154 String extension = getExtension(f); 155 if(extension != null && filters.get(getExtension(f)) != null) { 156 return true; 157 }; 158 } 159 return false; 160 } 161 162 168 public String getExtension(File f) { 169 if(f != null) { 170 String filename = f.getName(); 171 int i = filename.lastIndexOf('.'); 172 if(i>0 && i<filename.length()-1) { 173 return filename.substring(i+1).toLowerCase(); 174 }; 175 } 176 return null; 177 } 178 179 191 public void addExtension(String extension) { 192 if(filters == null) { 193 filters = new Hashtable (5); 194 } 195 filters.put(extension.toLowerCase(), this); 196 fullDescription = null; 197 } 198 199 200 209 public String getDescription() { 210 if(fullDescription == null) { 211 if(description == null || isExtensionListInDescription()) { 212 fullDescription = description==null ? "(" : description + " ("; 213 Enumeration extensions = filters.keys(); 215 if(extensions != null) { 216 fullDescription += "." + (String ) extensions.nextElement(); 217 while (extensions.hasMoreElements()) { 218 fullDescription += ", " + (String ) extensions.nextElement(); 219 } 220 } 221 fullDescription += ")"; 222 } else { 223 fullDescription = description; 224 } 225 } 226 return fullDescription; 227 } 228 229 237 public void setDescription(String description) { 238 this.description = description; 239 fullDescription = null; 240 } 241 242 253 public void setExtensionListInDescription(boolean b) { 254 useExtensionsInDescription = b; 255 fullDescription = null; 256 } 257 258 269 public boolean isExtensionListInDescription() { 270 return useExtensionsInDescription; 271 } 272 } 273 | Popular Tags |