/* * Copyright 2003-2010 Tufts University Licensed under the * Educational Community License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. You may * obtain a copy of the License at * * http://www.osedu.org/licenses/ECL-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an "AS IS" * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing * permissions and limitations under the License. */ package tufts.vue; public class VueFileFilter extends javax.swing.filechooser.FileFilter { private static final org.apache.log4j.Logger Log = org.apache.log4j.Logger.getLogger(VueFileFilter.class); //private final String[] extensions = {".vue", ".xml"}; //private String[] jpeg = {"jpeg"}, String[] svg = {"svg"}, String[] pdf = {"pdf"}, String[] html = {"html"}; public static final String JPEG_DESCRIPTION=VueResources.getString("vueFileFilter.jpeg.text"); public static final String SVG_DESCRIPTION=VueResources.getString("vueFileFilter.svg.text"); public static final String IMAGEMAP_DESCRIPTION=VueResources.getString("vueFileFilter.imagemap.text"); public static final String IMS_DESCRIPTION=VueResources.getString("vueFileFilter.ims.text"); public static final String VUE_DESCRIPTION=VueResources.getString("vueFileFilter.vue.text"); public static final String XML_DESCRIPTION=VueResources.getString("vueFileFilter.vue.text"); public static final String ZIP_DESCRIPTION=VueResources.getString("vueFileFilter.zip.text"); public static final String PNG_DESCRIPTION=VueResources.getString("vueFileFilter.png.text"); public static final String VPK_DESCRIPTION=VueResources.getString("vueFileFilter.vpk.text"); public static final String VuePackage = VueUtil.VueArchiveExtension.substring(1); private static final String[] jpeg = {"jpeg", "jpg"}, svg = {"svg"}, pdf = {"pdf"}, html = {"html","htm"}, imap = {"imap"}, png = {"png"}, vue = {"vue", "xml", VuePackage }, rdf = {"rdf","owl","rdfs"}, txt = {"txt"}, zip = {"zip"}, rli = {"rli.xml"}, VuePackageExt = { VuePackage }; private final String[] extensions; private final String description; // public VueFileFilter() { // super(); // } private void debug(String msg) { Log.debug(msg + ": desc=\"" + description + "\"; extensions=" + java.util.Arrays.asList(extensions)); } public VueFileFilter(String desc, String ... ext) { description = desc; extensions = ext; if (DEBUG.Enabled) debug("explict extensions"); } public VueFileFilter(String description) { super(); this.description = description; if (description.equalsIgnoreCase(JPEG_DESCRIPTION)) extensions = jpeg; else if (description.equalsIgnoreCase(VPK_DESCRIPTION)) extensions = VuePackageExt; else if (description.equalsIgnoreCase(SVG_DESCRIPTION)) extensions = svg; //else if (description.equals("pdf")) // extensions = pdf; //else if (description.equals("html")) // extensions = html; else if (description.equalsIgnoreCase("rdf")) extensions = rdf; else if (description.equalsIgnoreCase("pdf")) extensions = pdf; else if (description.equalsIgnoreCase(ZIP_DESCRIPTION)) extensions=zip; else if (description.equalsIgnoreCase(IMAGEMAP_DESCRIPTION)) { //extensions = imap; extensions = html; } else if (description.equalsIgnoreCase(PNG_DESCRIPTION)) extensions = png; else if (description.equalsIgnoreCase(IMS_DESCRIPTION)) extensions = rli; else if (description.equalsIgnoreCase(VUE_DESCRIPTION) || description.equalsIgnoreCase(XML_DESCRIPTION)) { extensions = vue; description = "VUE Files"; } else if (description.equalsIgnoreCase("zip")) { this.extensions = zip; } else if( description.equalsIgnoreCase("txt")) { this.extensions = txt; } else extensions = null; if (DEBUG.Enabled) debug("extensions by description"); } public boolean accept(java.io.File f) { if (f.isDirectory()) return true; String lname = f.getName().toLowerCase(); if(extensions != null) for (int i = 0; i < extensions.length; i++) if (lname.endsWith(extensions[i])) return true; return false; } public String getDescription() { return description; } public String[] getExtensions() { return extensions; } }