Merge branch 'develop' into patch/JAL-4110_stdout_for_tests
[jalview.git] / src / jalview / io / FileLoader.java
index a2585b3..dc7adac 100755 (executable)
@@ -74,6 +74,8 @@ public class FileLoader implements Runnable
 
   private File selectedFile;
 
+  private static boolean useDefaultFileFormat = false;
+
   /**
    * default constructor always raised errors in GUI dialog boxes
    */
@@ -321,9 +323,9 @@ public class FileLoader implements Runnable
       if (format == null)
       {
         Desktop.instance.stopLoading();
-        System.err.println("The input file \"" + file
+        jalview.bin.Console.errPrintln("The input file \"" + file
                 + "\" has null or unidentifiable data content!");
-        if (!Jalview.isHeadlessMode())
+        if (!Jalview.isHeadlessMode() && !Jalview.isBatchMode())
         {
           JvOptionPane.showInternalMessageDialog(Desktop.desktop,
                   MessageManager.getString("label.couldnt_read_data")
@@ -354,12 +356,12 @@ public class FileLoader implements Runnable
         if (source != null)
         {
           // Tell the user (developer?) that this is going to cause a problem
-          System.err.println(
+          jalview.bin.Console.errPrintln(
                   "IMPLEMENTATION ERROR: Cannot read consecutive Jalview XML projects from a stream.");
           // We read the data anyway - it might make sense.
         }
         // BH 2018 switch to File object here instead of filename
-        alignFrame = new Jalview2XML(raiseGUI).loadJalviewAlign(
+        alignFrame = new Jalview2XML(raiseGUI && !Jalview.isBatchMode()).loadJalviewAlign(
                 selectedFile == null ? file : selectedFile);
       }
       else
@@ -535,7 +537,7 @@ public class FileLoader implements Runnable
                   "label.couldnt_load_file") + " " + title + "\n" + error;
           // TODO: refactor FileLoader to be independent of Desktop / Applet GUI
           // bits ?
-          if (raiseGUI && Desktop.desktop != null)
+          if (raiseGUI && !Jalview.isBatchMode() && Desktop.desktop != null)
           {
             javax.swing.SwingUtilities.invokeLater(new Runnable()
             {
@@ -552,7 +554,7 @@ public class FileLoader implements Runnable
           }
           else
           {
-            System.err.println(errorMessage);
+            jalview.bin.Console.errPrintln(errorMessage);
           }
         }
       }
@@ -561,9 +563,9 @@ public class FileLoader implements Runnable
 
     } catch (Exception er)
     {
-      System.err.println("Exception whilst opening file '" + file);
+      jalview.bin.Console.errPrintln("Exception whilst opening file '" + file);
       er.printStackTrace();
-      if (raiseGUI)
+      if (raiseGUI && !Jalview.isBatchMode())
       {
         javax.swing.SwingUtilities.invokeLater(new Runnable()
         {
@@ -585,7 +587,7 @@ public class FileLoader implements Runnable
 
       er.printStackTrace();
       alignFrame = null;
-      if (raiseGUI)
+      if (raiseGUI && !Jalview.isBatchMode())
       {
         javax.swing.SwingUtilities.invokeLater(new Runnable()
         {
@@ -601,7 +603,7 @@ public class FileLoader implements Runnable
           }
         });
       }
-      System.err.println("Out of memory loading file " + file + "!!");
+      jalview.bin.Console.errPrintln("Out of memory loading file " + file + "!!");
 
     }
     loadtime += System.currentTimeMillis();
@@ -620,7 +622,7 @@ public class FileLoader implements Runnable
       {
         AlignmentI al = alignFrame.getViewport().getAlignment();
 
-        System.out.println("Loaded '" + title + "' in "
+        jalview.bin.Console.outPrintln("Loaded '" + title + "' in "
                 + (loadtime / 1000.0) + "s, took an additional "
                 + (1.0 * memused / (1024.0 * 1024.0)) + " MB ("
                 + al.getHeight() + " seqs by " + al.getWidth() + " cols)");
@@ -629,7 +631,7 @@ public class FileLoader implements Runnable
       {
         // report that we didn't load anything probably due to an out of memory
         // error
-        System.out.println("Failed to load '" + title + "' in "
+        jalview.bin.Console.outPrintln("Failed to load '" + title + "' in "
                 + (loadtime / 1000.0) + "s, took an additional "
                 + (1.0 * memused / (1024.0 * 1024.0))
                 + " MB (alignment is null)");
@@ -642,6 +644,8 @@ public class FileLoader implements Runnable
     }
 
     this.setShouldBeSaved();
+    // after first file loaded we revert to assuming a default file format
+    useDefaultFileFormat = true;
   }
 
   /**
@@ -684,4 +688,9 @@ public class FileLoader implements Runnable
             QuitHandler.Message.UNSAVED_ALIGNMENTS);
   }
 
+  public static boolean getUseDefaultFileFormat()
+  {
+    return useDefaultFileFormat;
+  }
+
 }