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