📄 filetype.java
字号:
{ if (p == null) return; // nothing Pref path = groupPrefs.get(this); path.setString(p); } public String getPath() { Pref path = groupPrefs.get(this); return path.getString(); } public String getFactoryPath() { Pref path = groupPrefs.get(this); return path.getStringFactoryValue(); } } public void setGroupPath(String path) { if (group == null) return; // nothing to do group.setPath(path); } public String getGroupPath() { if (group == null) return null; return group.getPath(); } private static FileType makeFileType(String name, String [] extensions, String desc, FileTypeGroup g) { FileType f = makeFileType(name, extensions, desc); f.group = g; return f; } private static FileType makeFileType(String name, String [] extensions, String desc) { FileType ft = new FileType(); ft.name = name; ft.extensions = extensions; ft.desc = desc; ft.ffs = null; ft.ffa = null; ft.allowNumbers = false; ft.group = null; allTypes.add(ft); return ft; } private static FileType makeFileTypeNumeric(String name, String [] extensions, String desc, FileTypeGroup g) { FileType ft = makeFileType(name, extensions, desc); ft.allowNumbers = true; ft.group = g; return ft; } public String getName() { return name; } public String getDescription() { return desc; } public String [] getExtensions() { if (allowNumbers) { String [] newExtensions = new String[extensions.length]; for(int i=0; i<extensions.length; i++) newExtensions[i] = extensions[i] + "0"; return newExtensions; } return extensions; } public FileFilterSwing getFileFilterSwing() { if (ffs == null) ffs = new FileFilterSwing(extensions, desc, allowNumbers); return ffs; } public FileFilterAWT getFileFilterAWT() { if (ffa == null) ffa = new FileFilterAWT(extensions, desc, allowNumbers); return ffa; } private Object readResolve() throws ObjectStreamException { for (FileType ft: allTypes) { if (name.equals(ft.name)) return ft; } return this; } /** * Returns a printable version of this Type. * @return a printable version of this Type. */ public String toString() { return name; } /** * Get the Type for the specified filter */ public static FileType getType(FileFilter filter) { for (FileType type : allTypes) { if (type.ffs == filter) return type; } return null; } /** * Get the Type for the specified filter */ public static FileType getType(FilenameFilter filter) { for (FileType type : allTypes) { if (type.ffa == filter) return type; } return null; } private static class FileFilterSwing extends FileFilter { /** list of valid extensions */ private String[] extensions; /** description of filter */ private String desc; /** true to allow digits in extension */ private boolean allowNumbers; /** Creates a new instance of FileFilterSwing */ public FileFilterSwing(String[] extensions, String desc, boolean allowNumbers) { this.extensions = extensions; this.desc = desc; this.allowNumbers = allowNumbers; } /** Returns true if file has extension matching any of * extensions is @param extensions. Also returns true * if file is a directory. Returns false otherwise */ public boolean accept(File f) { if (f == null) return false; if (f.isDirectory()) return true; String fileName = f.getName(); return matches(fileName, extensions, allowNumbers); } public String getDescription() { return desc; } } private static class FileFilterAWT implements FilenameFilter { /** list of valid extensions */ private String[] extensions; /** description of filter */ private String desc; /** true to allow digits in extension */ private boolean allowNumbers; /** Creates a new instance of FileFilterAWT */ public FileFilterAWT(String[] extensions, String desc, boolean allowNumbers) { this.extensions = extensions; this.desc = desc; this.allowNumbers = allowNumbers; } /** Returns true if file has extension matching any of * extensions is @param extensions. Also returns true * if file is a directory. Returns false otherwise */ public boolean accept(File f, String fileName) { return matches(fileName, extensions, allowNumbers); } public String getDescription() { return desc; } } private static boolean matches(String fileName, String [] extensions, boolean allowNumbers) { // special case for ANY if (extensions.length == 0) return true; int i = fileName.lastIndexOf('.'); if (i < 0) return false; String thisExtension = fileName.substring(i+1); if (thisExtension == null) return false; for (String extension : extensions) { if (extension.equalsIgnoreCase(thisExtension)) return true; if (allowNumbers) { if (thisExtension.length() > extension.length()) { if (thisExtension.startsWith(extension)) { boolean allDigits = true; for(int k=extension.length(); k<thisExtension.length(); k++) { if (!Character.isDigit(thisExtension.charAt(k))) allDigits = false; } if (allDigits) return true; } } } } return false; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -