Remove redundant imports
[jalview.git] / src / jalview / io / JalviewFileChooser.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 \r
20 //////////////////////////////////////////////////////////////////\r
21 package jalview.io;\r
22 \r
23 import java.io.*;\r
24 import java.awt.*;\r
25 import javax.swing.*;\r
26 import javax.swing.plaf.basic.*;\r
27 \r
28 public class JalviewFileChooser\r
29     extends JFileChooser\r
30 {\r
31 \r
32   public JalviewFileChooser(String dir)\r
33   {\r
34     super(dir);\r
35   }\r
36 \r
37   public JalviewFileChooser(String dir, String[] suffix, String[] desc,\r
38                             String selected)\r
39   {\r
40     super(dir);\r
41 \r
42     JalviewFileFilter chosen = null;\r
43 \r
44     for (int i = 0; i < suffix.length; i++)\r
45     {\r
46       JalviewFileFilter jvf = new JalviewFileFilter(suffix[i], desc[i]);\r
47       addChoosableFileFilter(jvf);\r
48 \r
49       if ( (selected != null) && selected.equalsIgnoreCase(desc[i]))\r
50       {\r
51         chosen = jvf;\r
52       }\r
53     }\r
54 \r
55     if (chosen != null)\r
56     {\r
57       setFileFilter(chosen);\r
58     }\r
59   }\r
60 \r
61   public void setFileFilter(javax.swing.filechooser.FileFilter filter)\r
62   {\r
63     super.setFileFilter(filter);\r
64 \r
65     if (! (getUI() instanceof BasicFileChooserUI))\r
66     {\r
67       return;\r
68     }\r
69 \r
70     final BasicFileChooserUI ui = (BasicFileChooserUI) getUI();\r
71     final String name = ui.getFileName().trim();\r
72 \r
73     if ( (name == null) || (name.length() == 0))\r
74     {\r
75       return;\r
76     }\r
77 \r
78     EventQueue.invokeLater(new Thread()\r
79     {\r
80       public void run()\r
81       {\r
82         String currentName = ui.getFileName();\r
83         if ( (currentName == null) || (currentName.length() == 0))\r
84         {\r
85           ui.setFileName(name);\r
86         }\r
87       }\r
88     });\r
89   }\r
90 \r
91 \r
92   public String getSelectedFormat()\r
93   {\r
94     String format = getFileFilter().getDescription();\r
95 \r
96     if (format.toUpperCase().startsWith("JALVIEW"))\r
97     {\r
98       format = "Jalview";\r
99     }\r
100     else if (format.toUpperCase().startsWith("FASTA"))\r
101     {\r
102       format = "FASTA";\r
103     }\r
104     else if (format.toUpperCase().startsWith("MSF"))\r
105     {\r
106       format = "MSF";\r
107     }\r
108     else if (format.toUpperCase().startsWith("CLUSTAL"))\r
109     {\r
110       format = "CLUSTAL";\r
111     }\r
112     else if (format.toUpperCase().startsWith("BLC"))\r
113     {\r
114       format = "BLC";\r
115     }\r
116     else if (format.toUpperCase().startsWith("PIR"))\r
117     {\r
118       format = "PIR";\r
119     }\r
120     else if (format.toUpperCase().startsWith("PFAM"))\r
121     {\r
122       format = "PFAM";\r
123     }\r
124 \r
125     return format;\r
126   }\r
127 \r
128   public int showSaveDialog(Component parent)\r
129       throws HeadlessException\r
130   {\r
131     setDialogType(SAVE_DIALOG);\r
132 \r
133     int ret = showDialog(parent, null);\r
134 \r
135     if (getFileFilter() instanceof JalviewFileFilter)\r
136     {\r
137       JalviewFileFilter jvf = (JalviewFileFilter) getFileFilter();\r
138 \r
139       if (!jvf.accept(getSelectedFile()))\r
140       {\r
141         String withExtension = getSelectedFile() + "." +\r
142             jvf.getAcceptableExtension();\r
143         setSelectedFile(new File(withExtension));\r
144       }\r
145     }\r
146 \r
147     if ( (ret == JalviewFileChooser.APPROVE_OPTION) &&\r
148         getSelectedFile().exists())\r
149     {\r
150       int confirm = JOptionPane.showConfirmDialog(parent,\r
151                                                   "Overwrite existing file?",\r
152                                                   "File exists",\r
153                                                   JOptionPane.YES_NO_OPTION);\r
154 \r
155       if (confirm != JOptionPane.YES_OPTION)\r
156       {\r
157         ret = this.CANCEL_OPTION;\r
158       }\r
159     }\r
160 \r
161     return ret;\r
162   }\r
163 }\r
164 \r
165 \r
166 \r