X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FJalview.java;h=1f869263b2a54d37cd772aa701fc780ee8f4bcec;hb=5e462885d21193706d23e42cd5e21e88763788cb;hp=4a336ea385280c936799f351db9f7d3bbe9463ba;hpb=570267624a5d5e0192895edbd4c25f25f3ea15f0;p=jalview.git diff --git a/src/jalview/bin/Jalview.java b/src/jalview/bin/Jalview.java index 4a336ea..1f86926 100755 --- a/src/jalview/bin/Jalview.java +++ b/src/jalview/bin/Jalview.java @@ -91,6 +91,7 @@ import jalview.io.FileLoader; import jalview.io.HtmlSvgOutput; import jalview.io.IdentifyFile; import jalview.io.NewickFile; +import jalview.io.exceptions.ImageOutputException; import jalview.io.gff.SequenceOntologyFactory; import jalview.schemes.ColourSchemeI; import jalview.schemes.ColourSchemeProperty; @@ -343,6 +344,25 @@ public class Jalview } } + // set individual session preferences + if (bootstrapArgs.contains(Arg.P)) + { + for (String kev : bootstrapArgs.getValueList(Arg.P)) + { + if (kev == null) + { + continue; + } + int equalsIndex = kev.indexOf(ArgParser.EQUALS); + if (equalsIndex > -1) + { + String key = kev.substring(0, equalsIndex); + String val = kev.substring(equalsIndex + 1); + Cache.setSessionProperty(key, val); + } + } + } + // Move any new getdown-launcher-new.jar into place over old // getdown-launcher.jar String appdirString = System.getProperty("getdownappdir"); @@ -720,18 +740,18 @@ public class Jalview testoutput(argparser, Arg.WEBSERVICEDISCOVERY); } - boolean usagestats = bootstrapArgs.getBoolean(Arg.USAGESTATS); + boolean usagestats = !bootstrapArgs.getBoolean(Arg.NOUSAGESTATS); if (aparser.contains("nousagestats")) usagestats = false; if (usagestats) { startUsageStats(desktop); - testoutput(argparser, Arg.USAGESTATS); + testoutput(argparser, Arg.NOUSAGESTATS); } else { System.out.println("CMD [-nousagestats] executed successfully!"); - testoutput(argparser, Arg.USAGESTATS); + testoutput(argparser, Arg.NOUSAGESTATS); } boolean questionnaire = bootstrapArgs.getBoolean(Arg.QUESTIONNAIRE); @@ -790,6 +810,7 @@ public class Jalview // Run Commands from cli cmds = new Commands(argparser, headlessArg); boolean commandsSuccess = cmds.argsWereParsed(); + if (commandsSuccess) { if (headlessArg) @@ -802,6 +823,11 @@ public class Jalview } else { + // record usage stats if in headless mode + if (Cache.getDefault("USAGESTATS", false)) + { + Cache.initGoogleTracker(headlessArg); + } Jalview.exit("Successfully completed commands in headless mode", 0); } @@ -986,9 +1012,7 @@ public class Jalview ex.printStackTrace(System.err); } } - // TODO - load PDB structure(s) to alignment JAL-629 - // (associate with identical sequence in alignment, or a specified - // sequence) + if (groovyscript != null) { // Execute the groovy script after we've done all the rendering stuff @@ -1002,100 +1026,109 @@ public class Jalview String imageName = "unnamed.png"; while (aparser.getSize() > 1) { - String outputFormat = aparser.nextValue(); - file = aparser.nextValue(); - - if (outputFormat.equalsIgnoreCase("png")) - { - af.createPNG(new File(file)); - imageName = (new File(file)).getName(); - System.out.println("Creating PNG image: " + file); - continue; - } - else if (outputFormat.equalsIgnoreCase("svg")) - { - File imageFile = new File(file); - imageName = imageFile.getName(); - af.createSVG(imageFile); - System.out.println("Creating SVG image: " + file); - continue; - } - else if (outputFormat.equalsIgnoreCase("html")) + try { - File imageFile = new File(file); - imageName = imageFile.getName(); - HtmlSvgOutput htmlSVG = new HtmlSvgOutput(af.alignPanel); - htmlSVG.exportHTML(file); + String outputFormat = aparser.nextValue(); + file = aparser.nextValue(); - System.out.println("Creating HTML image: " + file); - continue; - } - else if (outputFormat.equalsIgnoreCase("biojsmsa")) - { - if (file == null) + if (outputFormat.equalsIgnoreCase("png")) { - System.err.println("The output html file must not be null"); - return; + System.out.println("Creating PNG image: " + file); + af.createPNG(new File(file)); + imageName = (new File(file)).getName(); + continue; } - try + else if (outputFormat.equalsIgnoreCase("svg")) { - BioJsHTMLOutput.refreshVersionInfo( - BioJsHTMLOutput.BJS_TEMPLATES_LOCAL_DIRECTORY); - } catch (URISyntaxException e) + System.out.println("Creating SVG image: " + file); + File imageFile = new File(file); + imageName = imageFile.getName(); + af.createSVG(imageFile); + continue; + } + else if (outputFormat.equalsIgnoreCase("html")) { - e.printStackTrace(); + File imageFile = new File(file); + imageName = imageFile.getName(); + HtmlSvgOutput htmlSVG = new HtmlSvgOutput(af.alignPanel); + + System.out.println("Creating HTML image: " + file); + htmlSVG.exportHTML(file); + continue; } - BioJsHTMLOutput bjs = new BioJsHTMLOutput(af.alignPanel); - bjs.exportHTML(file); - System.out - .println("Creating BioJS MSA Viwer HTML file: " + file); - continue; - } - else if (outputFormat.equalsIgnoreCase("imgMap")) - { - af.createImageMap(new File(file), imageName); - System.out.println("Creating image map: " + file); - continue; - } - else if (outputFormat.equalsIgnoreCase("eps")) - { - File outputFile = new File(file); - System.out.println( - "Creating EPS file: " + outputFile.getAbsolutePath()); - af.createEPS(outputFile); - continue; - } - FileFormatI outFormat = null; - try - { - outFormat = FileFormats.getInstance().forName(outputFormat); - } catch (Exception formatP) - { - System.out.println("Couldn't parse " + outFormat - + " as a valid Jalview format string."); - } - if (outFormat != null) - { - if (!outFormat.isWritable()) + else if (outputFormat.equalsIgnoreCase("biojsmsa")) { + if (file == null) + { + System.err.println("The output html file must not be null"); + return; + } + try + { + BioJsHTMLOutput.refreshVersionInfo( + BioJsHTMLOutput.BJS_TEMPLATES_LOCAL_DIRECTORY); + } catch (URISyntaxException e) + { + e.printStackTrace(); + } + BioJsHTMLOutput bjs = new BioJsHTMLOutput(af.alignPanel); System.out.println( - "This version of Jalview does not support alignment export as " - + outputFormat); + "Creating BioJS MSA Viwer HTML file: " + file); + bjs.exportHTML(file); + continue; } - else + else if (outputFormat.equalsIgnoreCase("imgMap")) { - af.saveAlignment(file, outFormat); - if (af.isSaveAlignmentSuccessful()) + System.out.println("Creating image map: " + file); + af.createImageMap(new File(file), imageName); + continue; + } + else if (outputFormat.equalsIgnoreCase("eps")) + { + File outputFile = new File(file); + System.out.println( + "Creating EPS file: " + outputFile.getAbsolutePath()); + af.createEPS(outputFile); + continue; + } + + FileFormatI outFormat = null; + try + { + outFormat = FileFormats.getInstance().forName(outputFormat); + } catch (Exception formatP) + { + System.out.println("Couldn't parse " + outFormat + + " as a valid Jalview format string."); + } + if (outFormat != null) + { + if (!outFormat.isWritable()) { - System.out.println("Written alignment in " - + outFormat.getName() + " format to " + file); + System.out.println( + "This version of Jalview does not support alignment export as " + + outputFormat); } else { - System.out.println("Error writing file " + file + " in " - + outFormat.getName() + " format!!"); + af.saveAlignment(file, outFormat); + if (af.isSaveAlignmentSuccessful()) + { + System.out.println("Written alignment in " + + outFormat.getName() + " format to " + file); + } + else + { + System.out.println("Error writing file " + file + " in " + + outFormat.getName() + " format!!"); + } } } + } catch (ImageOutputException ioexc) + { + System.out.println( + "Unexpected error whilst exporting image to " + file); + ioexc.printStackTrace(); } } @@ -1114,7 +1147,8 @@ public class Jalview if (!Platform.isJS() && !headless && file == null && Cache.getDefault("SHOW_STARTUP_FILE", true) - && !cmds.commandArgsProvided()) + && !cmds.commandArgsProvided() + && !bootstrapArgs.getBoolean(Arg.NOSTARTUPFILE)) // don't open the startup file if command line args have been processed // (&& !Commands.commandArgsProvided()) /** @@ -1192,93 +1226,102 @@ public class Jalview private static void setLookAndFeel() { - // property laf = "crossplatform", "system", "gtk", "metal", "nimbus", - // "mac" or "flat" - // If not set (or chosen laf fails), use the normal SystemLaF and if on Mac, - // try Quaqua/Vaqua. - String lafProp = System.getProperty("laf"); - String lafSetting = Cache.getDefault("PREFERRED_LAF", null); - String laf = "none"; - if (lafProp != null) - { - laf = lafProp; - } - else if (lafSetting != null) - { - laf = lafSetting; - } - boolean lafSet = false; - switch (laf) + if (!Platform.isJS()) + /** + * Java only + * + * @j2sIgnore + */ { - case "crossplatform": - lafSet = setCrossPlatformLookAndFeel(); - if (!lafSet) - { - Console.error("Could not set requested laf=" + laf); - } - break; - case "system": - lafSet = setSystemLookAndFeel(); - if (!lafSet) - { - Console.error("Could not set requested laf=" + laf); - } - break; - case "gtk": - lafSet = setGtkLookAndFeel(); - if (!lafSet) - { - Console.error("Could not set requested laf=" + laf); - } - break; - case "metal": - lafSet = setMetalLookAndFeel(); - if (!lafSet) - { - Console.error("Could not set requested laf=" + laf); - } - break; - case "nimbus": - lafSet = setNimbusLookAndFeel(); - if (!lafSet) - { - Console.error("Could not set requested laf=" + laf); + // property laf = "crossplatform", "system", "gtk", "metal", "nimbus", + // "mac" or "flat" + // If not set (or chosen laf fails), use the normal SystemLaF and if on + // Mac, + // try Quaqua/Vaqua. + String lafProp = System.getProperty("laf"); + String lafSetting = Cache.getDefault("PREFERRED_LAF", null); + String laf = "none"; + if (lafProp != null) + { + laf = lafProp; } - break; - case "flat": - lafSet = setFlatLookAndFeel(); - if (!lafSet) + else if (lafSetting != null) { - Console.error("Could not set requested laf=" + laf); + laf = lafSetting; } - break; - case "mac": - lafSet = setMacLookAndFeel(); - if (!lafSet) + boolean lafSet = false; + switch (laf) { - Console.error("Could not set requested laf=" + laf); + case "crossplatform": + lafSet = setCrossPlatformLookAndFeel(); + if (!lafSet) + { + Console.error("Could not set requested laf=" + laf); + } + break; + case "system": + lafSet = setSystemLookAndFeel(); + if (!lafSet) + { + Console.error("Could not set requested laf=" + laf); + } + break; + case "gtk": + lafSet = setGtkLookAndFeel(); + if (!lafSet) + { + Console.error("Could not set requested laf=" + laf); + } + break; + case "metal": + lafSet = setMetalLookAndFeel(); + if (!lafSet) + { + Console.error("Could not set requested laf=" + laf); + } + break; + case "nimbus": + lafSet = setNimbusLookAndFeel(); + if (!lafSet) + { + Console.error("Could not set requested laf=" + laf); + } + break; + case "flat": + lafSet = setFlatLookAndFeel(); + if (!lafSet) + { + Console.error("Could not set requested laf=" + laf); + } + break; + case "mac": + lafSet = setMacLookAndFeel(); + if (!lafSet) + { + Console.error("Could not set requested laf=" + laf); + } + break; + case "none": + break; + default: + Console.error("Requested laf=" + laf + " not implemented"); } - break; - case "none": - break; - default: - Console.error("Requested laf=" + laf + " not implemented"); - } - if (!lafSet) - { - // Flatlaf default for everyone! - lafSet = setFlatLookAndFeel(); if (!lafSet) { - setSystemLookAndFeel(); - } - if (Platform.isLinux()) - { - setLinuxLookAndFeel(); - } - if (Platform.isMac()) - { - setMacLookAndFeel(); + // Flatlaf default for everyone! + lafSet = setFlatLookAndFeel(); + if (!lafSet) + { + setSystemLookAndFeel(); + } + if (Platform.isLinux()) + { + setLinuxLookAndFeel(); + } + if (Platform.isMac()) + { + setMacLookAndFeel(); + } } } } @@ -1779,8 +1822,14 @@ public class Jalview } } - /* - * testoutput for string values + /****************************** + * + * TEST OUTPUT METHODS + * + ******************************/ + /** + * method for reporting string values parsed/processed during tests + * */ protected static void testoutput(ArgParser ap, Arg a, String s1, String s2) @@ -1804,6 +1853,10 @@ public class Jalview testoutput(true, a, s1, s2); } + /** + * method for reporting string values parsed/processed during tests + */ + protected static void testoutput(BootstrapArgs bsa, Arg a, String s1, String s2) { @@ -1828,6 +1881,9 @@ public class Jalview testoutput(true, a, s1, s2); } + /** + * report value set for string values parsed/processed during tests + */ private static void testoutput(boolean yes, Arg a, String s1, String s2) { if (yes && ((s1 == null && s2 == null) @@ -1839,7 +1895,7 @@ public class Jalview } /* - * testoutput for boolean values + * testoutput for boolean and unary values */ protected static void testoutput(ArgParser ap, Arg a) { @@ -1882,7 +1938,15 @@ public class Jalview private static void testoutput(boolean yes, Arg a) { - System.out.println("[TESTOUTPUT] arg " - + (yes ? a.argString() : a.negateArgString()) + " was set"); + String message = null; + if (a.hasOption(Opt.BOOLEAN)) + { + message = (yes ? a.argString() : a.negateArgString()) + " was set"; + } + else if (a.hasOption(Opt.UNARY)) + { + message = a.argString() + (yes ? " was set" : " was not set"); + } + System.out.println("[TESTOUTPUT] arg " + message); } }