X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FFileLoader.java;h=b16c37f83ce16b5e3088d9443e3a865d3d133947;hb=3fdc889794e3566af57628f0b6a308eb23886f96;hp=971aba3374d3cabad422240afbc6f9f6f2d47a4f;hpb=a5928e2c1b9e2cea8d9c43f3d03f9cce2604f3b2;p=jalview.git diff --git a/src/jalview/io/FileLoader.java b/src/jalview/io/FileLoader.java index 971aba3..b16c37f 100755 --- a/src/jalview/io/FileLoader.java +++ b/src/jalview/io/FileLoader.java @@ -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") @@ -332,7 +334,8 @@ public class FileLoader implements Runnable MessageManager.getString("label.couldnt_read_data"), JvOptionPane.WARNING_MESSAGE); } - this.setShouldBeSaved(); + // don't set shouldBeSaved if didn't load anything + // this.setShouldBeSaved(); return; } // TODO: cache any stream datasources as a temporary file (eg. PDBs @@ -353,13 +356,14 @@ 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( - selectedFile == null ? file : selectedFile); + alignFrame = new Jalview2XML(raiseGUI && !Jalview.isBatchMode()) + .loadJalviewAlign( + selectedFile == null ? file : selectedFile); } else { @@ -534,7 +538,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() { @@ -551,7 +555,7 @@ public class FileLoader implements Runnable } else { - System.err.println(errorMessage); + jalview.bin.Console.errPrintln(errorMessage); } } } @@ -560,9 +564,10 @@ 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() { @@ -584,7 +589,7 @@ public class FileLoader implements Runnable er.printStackTrace(); alignFrame = null; - if (raiseGUI) + if (raiseGUI && !Jalview.isBatchMode()) { javax.swing.SwingUtilities.invokeLater(new Runnable() { @@ -600,7 +605,8 @@ 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(); @@ -619,7 +625,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)"); @@ -628,7 +634,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)"); @@ -641,6 +647,8 @@ public class FileLoader implements Runnable } this.setShouldBeSaved(); + // after first file loaded we revert to assuming a default file format + useDefaultFileFormat = true; } /** @@ -679,8 +687,21 @@ public class FileLoader implements Runnable AlignViewport avp = af.getViewport(); if (avp == null) return; - avp.setSavedUpToDate(!protocol.isDynamic(), - QuitHandler.Message.UNSAVED_ALIGNMENTS); + boolean upToDate = !protocol.isDynamic(); + if (protocol.isUrl() && !Cache + .getDefault(PROMPT_SAVE_UNCHANGED_URL_ALIGNMENTS, true)) + { + upToDate = true; + } + avp.setSavedUpToDate(upToDate, + upToDate ? null : QuitHandler.Message.UNSAVED_ALIGNMENTS); + } + + public static final String PROMPT_SAVE_UNCHANGED_URL_ALIGNMENTS = "PROMPT_SAVE_UNCHANGED_URL_ALIGNMENTS"; + + public static boolean getUseDefaultFileFormat() + { + return useDefaultFileFormat; } }