f4c7f23bc9f12c6a4542e933b428a91c4ba8cad5
[jalview.git] / src / jalview / io / JalviewFileView.java
1 /*\r
2 * Jalview - A Sequence Alignment Editor and Viewer\r
3 * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
4 *\r
5 * This program is free software; you can redistribute it and/or\r
6 * modify it under the terms of the GNU General Public License\r
7 * as published by the Free Software Foundation; either version 2\r
8 * of the License, or (at your option) any later version.\r
9 *\r
10 * This program is distributed in the hope that it will be useful,\r
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13 * GNU General Public License for more details.\r
14 *\r
15 * You should have received a copy of the GNU General Public License\r
16 * along with this program; if not, write to the Free Software\r
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
18 */\r
19 package jalview.io;\r
20 \r
21 import java.io.*;\r
22 \r
23 import java.util.*;\r
24 \r
25 import javax.swing.*;\r
26 import javax.swing.filechooser.FileView;\r
27 \r
28 \r
29 public class JalviewFileView extends FileView {\r
30     static Hashtable alignSuffix = new Hashtable();\r
31 \r
32     static {\r
33         alignSuffix.put("fasta", "Fasta file");\r
34         alignSuffix.put("fa", "Fasta file");\r
35         alignSuffix.put("fastq", "Fasta file");\r
36         alignSuffix.put("blc", "BLC file");\r
37         alignSuffix.put("msf", "MSF file");\r
38         alignSuffix.put("pfam", "PFAM file");\r
39         alignSuffix.put("aln", "Clustal file");\r
40         alignSuffix.put("pir", "PIR file");\r
41     }\r
42 \r
43     public String getTypeDescription(File f) {\r
44         String extension = getExtension(f);\r
45         String type = null;\r
46 \r
47         if (extension != null) {\r
48             if (alignSuffix.containsKey(extension)) {\r
49                 type = alignSuffix.get(extension).toString();\r
50             }\r
51         }\r
52 \r
53         return type;\r
54     }\r
55 \r
56     public Icon getIcon(File f) {\r
57         String extension = getExtension(f);\r
58         Icon icon = null;\r
59 \r
60         if (extension != null) {\r
61             if (alignSuffix.containsKey(extension)) {\r
62                 icon = createImageIcon("/images/file.png");\r
63             }\r
64         }\r
65 \r
66         return icon;\r
67     }\r
68 \r
69     /*\r
70      * Get the extension of a file.\r
71      */\r
72     public static String getExtension(File f) {\r
73         String ext = null;\r
74         String s = f.getName();\r
75         int i = s.lastIndexOf('.');\r
76 \r
77         if ((i > 0) && (i < (s.length() - 1))) {\r
78             ext = s.substring(i + 1).toLowerCase();\r
79         }\r
80 \r
81         return ext;\r
82     }\r
83 \r
84     /** Returns an ImageIcon, or null if the path was invalid. */\r
85     protected static ImageIcon createImageIcon(String path) {\r
86         java.net.URL imgURL = JalviewFileView.class.getResource(path);\r
87 \r
88         if (imgURL != null) {\r
89             return new ImageIcon(imgURL);\r
90         } else {\r
91             System.err.println(\r
92                 "JalviewFileView.createImageIcon: Couldn't find file: " + path);\r
93 \r
94             return null;\r
95         }\r
96     }\r
97 }\r