/* * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * * Jalview is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation, either version 3 * of the License, or (at your option) any later version. * * Jalview is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Jalview. If not, see . * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.io; import java.io.File; import java.util.Hashtable; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.filechooser.FileView; public class JalviewFileView extends FileView { static Hashtable extensions; static void loadExtensions() { extensions = new Hashtable(); for (FileFormatI ff : FileFormat.values()) { String desc = ff.toString() + " file"; String exts = ff.getExtensions(); for (String ext : exts.split(",")) { extensions.put(ext.trim(), desc + ("jar".equals(ext) ? " (old)" : "")); } } } @Override public String getTypeDescription(File f) { String extension = getExtension(f); String type = getDescriptionForExtension(extension); if (extension != null) { if (extensions.containsKey(extension)) { type = extensions.get(extension).toString(); } } return type; } private String getDescriptionForExtension(String extension) { synchronized (this) { if (extensions == null) { loadExtensions(); } } return extensions.get(extension); } @Override public Icon getIcon(File f) { String extension = getExtension(f); Icon icon = null; if (getDescriptionForExtension(extension) != null) { icon = createImageIcon("/images/file.png"); } return icon; } /* * Get the extension of a file. */ public static String getExtension(File f) { String ext = null; String s = f.getName(); int i = s.lastIndexOf('.'); if ((i > 0) && (i < (s.length() - 1))) { ext = s.substring(i + 1).toLowerCase(); } return ext; } /** * Returns an ImageIcon, or null if the file was not found * * @param filePath */ protected static ImageIcon createImageIcon(String filePath) { java.net.URL imgURL = JalviewFileView.class.getResource(filePath); if (imgURL != null) { return new ImageIcon(imgURL); } else { System.err .println("JalviewFileView.createImageIcon: Couldn't find file: " + filePath); return null; } } }