Merge remote-tracking branch 'remotes/origin/2_5_1_rna_merge' into develop (JAL-826)
[jalview.git] / src / jalview / io / JalviewFileChooser.java
index 465b8a3..0281839 100755 (executable)
@@ -1,22 +1,20 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer
- * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- *
- * This program 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 2
- * of the License, or (at your option) any later version.
- *
- * This program 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 this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
+ * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * 
+ * 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 <http://www.gnu.org/licenses/>.
  */
-
 //////////////////////////////////////////////////////////////////
 package jalview.io;
 
@@ -26,16 +24,17 @@ import java.util.*;
 import java.awt.*;
 import java.awt.event.*;
 import javax.swing.*;
+
 /**
  * Enhanced file chooser dialog box.
  * 
- * NOTE: bug on Windows systems when filechooser opened on directory to view files with colons in title.
+ * NOTE: bug on Windows systems when filechooser opened on directory to view
+ * files with colons in title.
  * 
  * @author AMW
- *
+ * 
  */
-public class JalviewFileChooser
-    extends JFileChooser
+public class JalviewFileChooser extends JFileChooser
 {
   public JalviewFileChooser(String dir)
   {
@@ -45,55 +44,48 @@ public class JalviewFileChooser
 
   private static File safePath(String dir)
   {
-    if (dir==null)
-    { return null;
+    if (dir == null)
+    {
+      return null;
     }
-     
+
     File f = new File(dir);
-    if (f.getName().indexOf(':')>-1)
+    if (f.getName().indexOf(':') > -1)
     {
       return null;
     }
     return f;
   }
 
-  public JalviewFileChooser(String dir,
-                            String[] suffix,
-                            String[] desc,
-                            String selected,
-                            boolean selectAll)
+  public JalviewFileChooser(String dir, String[] suffix, String[] desc,
+          String selected, boolean selectAll)
   {
     super(safePath(dir));
     init(suffix, desc, selected, selectAll);
   }
 
-  public JalviewFileChooser(String dir,
-                            String[] suffix,
-                            String[] desc,
-                            String selected)
+  public JalviewFileChooser(String dir, String[] suffix, String[] desc,
+          String selected)
   {
     super(safePath(dir));
     init(suffix, desc, selected, true);
   }
 
-  void init(String[] suffix,
-            String[] desc,
-            String selected,
-            boolean selectAll)
+  void init(String[] suffix, String[] desc, String selected,
+          boolean selectAll)
   {
 
     JalviewFileFilter chosen = null;
 
-    //SelectAllFilter needs to be set first before adding further
-    //file filters to fix bug on Mac OSX
+    // SelectAllFilter needs to be set first before adding further
+    // file filters to fix bug on Mac OSX
     setAcceptAllFileFilterUsed(selectAll);
-
+    
     for (int i = 0; i < suffix.length; i++)
     {
       JalviewFileFilter jvf = new JalviewFileFilter(suffix[i], desc[i]);
       addChoosableFileFilter(jvf);
-
-      if ( (selected != null) && selected.equalsIgnoreCase(desc[i]))
+      if ((selected != null) && selected.equalsIgnoreCase(desc[i]))
       {
         chosen = jvf;
       }
@@ -115,11 +107,10 @@ public class JalviewFileChooser
     {
       if (getUI() instanceof javax.swing.plaf.basic.BasicFileChooserUI)
       {
-        final javax.swing.plaf.basic.BasicFileChooserUI ui = (javax.swing.plaf.
-            basic.BasicFileChooserUI) getUI();
+        final javax.swing.plaf.basic.BasicFileChooserUI ui = (javax.swing.plaf.basic.BasicFileChooserUI) getUI();
         final String name = ui.getFileName().trim();
 
-        if ( (name == null) || (name.length() == 0))
+        if ((name == null) || (name.length() == 0))
         {
           return;
         }
@@ -129,15 +120,14 @@ public class JalviewFileChooser
           public void run()
           {
             String currentName = ui.getFileName();
-            if ( (currentName == null) || (currentName.length() == 0))
+            if ((currentName == null) || (currentName.length() == 0))
             {
               ui.setFileName(name);
             }
           }
         });
       }
-    }
-    catch (Exception ex)
+    } catch (Exception ex)
     {
       ex.printStackTrace();
       // Some platforms do not have BasicFileChooserUI
@@ -185,8 +175,7 @@ public class JalviewFileChooser
     return format;
   }
 
-  public int showSaveDialog(Component parent)
-      throws HeadlessException
+  public int showSaveDialog(Component parent) throws HeadlessException
   {
     this.setAccessory(null);
 
@@ -200,19 +189,19 @@ public class JalviewFileChooser
 
       if (!jvf.accept(getSelectedFile()))
       {
-        String withExtension = getSelectedFile() + "." +
-            jvf.getAcceptableExtension();
+        String withExtension = getSelectedFile() + "."
+                + jvf.getAcceptableExtension();
         setSelectedFile(new File(withExtension));
       }
     }
-    // TODO: ENSURE THAT FILES SAVED WITH A ':' IN THE NAME ARE REFUSED AND THE USER PROMPTED FOR A NEW FILENAME
-    if ( (ret == JalviewFileChooser.APPROVE_OPTION) &&
-        getSelectedFile().exists())
+    // TODO: ENSURE THAT FILES SAVED WITH A ':' IN THE NAME ARE REFUSED AND THE
+    // USER PROMPTED FOR A NEW FILENAME
+    if ((ret == JalviewFileChooser.APPROVE_OPTION)
+            && getSelectedFile().exists())
     {
       int confirm = JOptionPane.showConfirmDialog(parent,
-                                                  "Overwrite existing file?",
-                                                  "File exists",
-                                                  JOptionPane.YES_NO_OPTION);
+              "Overwrite existing file?", "File exists",
+              JOptionPane.YES_NO_OPTION);
 
       if (confirm != JOptionPane.YES_OPTION)
       {
@@ -230,7 +219,7 @@ public class JalviewFileChooser
     File file = new File(selection);
     if (getFileFilter() instanceof JalviewFileFilter)
     {
-      JalviewFileFilter jvf = (JalviewFileFilter)this.getFileFilter();
+      JalviewFileFilter jvf = (JalviewFileFilter) this.getFileFilter();
 
       if (!jvf.accept(file))
       {
@@ -241,10 +230,10 @@ public class JalviewFileChooser
     setSelectedFile(file);
   }
 
-  class RecentlyOpened
-      extends JPanel
+  class RecentlyOpened extends JPanel
   {
     JList list;
+
     public RecentlyOpened()
     {
       String historyItems = jalview.bin.Cache.getProperty("RECENT_FILE");
@@ -286,7 +275,7 @@ public class JalviewFileChooser
         public void run()
         {
           scroller.getHorizontalScrollBar().setValue(
-              scroller.getHorizontalScrollBar().getMaximum());
+                  scroller.getHorizontalScrollBar().getMaximum());
         }
       });