JAL-4279 suppress error dialogs raised by file loader when working in batch mode
[jalview.git] / src / jalview / io / JalviewFileChooser.java
index ef7a2b8..3f44596 100755 (executable)
@@ -51,6 +51,8 @@ import javax.swing.JScrollPane;
 import javax.swing.ListCellRenderer;
 import javax.swing.SpringLayout;
 import javax.swing.SwingConstants;
+import javax.swing.SwingUtilities;
+import javax.swing.border.TitledBorder;
 import javax.swing.filechooser.FileFilter;
 import javax.swing.plaf.basic.BasicFileChooserUI;
 
@@ -195,7 +197,7 @@ public class JalviewFileChooser extends JFileChooser
     }
     else
     {
-      System.err.println("JalviewFileChooser arguments mismatch: "
+      jalview.bin.Console.errPrintln("JalviewFileChooser arguments mismatch: "
               + extensions + ", " + descs);
     }
   }
@@ -284,6 +286,11 @@ public class JalviewFileChooser extends JFileChooser
     alljvf.setExtensionListInDescription(false);
     addChoosableFileFilter(alljvf);
 
+    if (selected == null)
+    {
+      chosen = alljvf;
+    }
+
     for (String[] format : formats)
     {
       JalviewFileFilter jvf = new JalviewFileFilter(format[0], format[1]);
@@ -430,7 +437,7 @@ public class JalviewFileChooser extends JFileChooser
         return FileFormats.getInstance().forName(format);
       } catch (IllegalArgumentException e)
       {
-        System.err.println("Unexpected format: " + format);
+        jalview.bin.Console.errPrintln("Unexpected format: " + format);
       }
     }
     return null;
@@ -484,7 +491,7 @@ public class JalviewFileChooser extends JFileChooser
         }
       } catch (Throwable x)
       {
-        System.err.println(
+        jalview.bin.Console.errPrintln(
                 "Unexpected exception when trying to get filename.");
         x.printStackTrace();
       }
@@ -546,6 +553,11 @@ public class JalviewFileChooser extends JFileChooser
         }
       }
 
+      if (!file.isAbsolute() && file.exists())
+      {
+        file = file.getAbsoluteFile();
+      }
+
       setSelectedFile(file);
     }
   }
@@ -576,12 +588,6 @@ public class JalviewFileChooser extends JFileChooser
       list = new JList<>(recent);
       list.setCellRenderer(new recentlyOpenedCellRenderer());
 
-      /*
-      DefaultListCellRenderer dlcr = new DefaultListCellRenderer();
-      dlcr.setHorizontalAlignment(DefaultListCellRenderer.RIGHT);
-      list.setCellRenderer(dlcr);
-      */
-
       list.addMouseListener(new MouseAdapter()
       {
         @Override
@@ -591,8 +597,11 @@ public class JalviewFileChooser extends JFileChooser
         }
       });
 
-      this.setBorder(new javax.swing.border.TitledBorder(
-              MessageManager.getString("label.recently_opened")));
+      TitledBorder recentlyOpenedBorder = new TitledBorder(
+              MessageManager.getString("label.recently_opened"));
+      recentlyOpenedBorder.setTitleFont(
+              recentlyOpenedBorder.getTitleFont().deriveFont(10f));
+      this.setBorder(recentlyOpenedBorder);
 
       final JScrollPane scroller = new JScrollPane(list);
 
@@ -602,20 +611,11 @@ public class JalviewFileChooser extends JFileChooser
       layout.putConstraint(SpringLayout.NORTH, scroller, 5,
               SpringLayout.NORTH, this);
 
-      // TODO are we now all using FlatLaf -- check same dimensions for
-      // everyone?
-      if (Platform.isAMacAndNotJS())
-      {
-        scroller.setPreferredSize(new Dimension(280, 100));
-      }
-      else
-      {
-        scroller.setPreferredSize(new Dimension(500, 200));
-      }
-
+      // one size okay for all
+      scroller.setPreferredSize(new Dimension(280, 105));
       this.add(scroller);
 
-      javax.swing.SwingUtilities.invokeLater(new Runnable()
+      SwingUtilities.invokeLater(new Runnable()
       {
         @Override
         public void run()