JAL-1432 updated copyright notices
[jalview.git] / src / jalview / io / JalviewFileView.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.0b1)
3  * Copyright (C) 2014 The Jalview Authors
4  * 
5  * This file is part of Jalview.
6  * 
7  * Jalview is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License 
9  * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
10  *  
11  * Jalview is distributed in the hope that it will be useful, but 
12  * WITHOUT ANY WARRANTY; without even the implied warranty 
13  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
14  * PURPOSE.  See the GNU General Public License for more details.
15  * 
16  * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
17  * The Jalview Authors are detailed in the 'AUTHORS' file.
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 }