X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FJalview.java;h=4a5c73302fa2818fe34cdc3f05e5922900768105;hb=be8b1d254f658181eec3c29dc696114e3ffdd4df;hp=81193e600645457cbcb2e9e61deeb37832ee6ea0;hpb=40373abd3960216c8f34dfcda7ed7f2adc2db99b;p=jalview.git diff --git a/src/jalview/bin/Jalview.java b/src/jalview/bin/Jalview.java index 81193e6..4a5c733 100755 --- a/src/jalview/bin/Jalview.java +++ b/src/jalview/bin/Jalview.java @@ -297,6 +297,8 @@ public class Jalview implements ApplicationSingletonI Cache.loadProperties(usrPropsFile); // must do this before + boolean allowServices = true; + if (isJS) { j2sAppletID = Platform.getAppID(null); @@ -336,7 +338,8 @@ public class Jalview implements ApplicationSingletonI // anything else! final String jabawsUrl = aparser.getValue(ArgsParser.JABAWS); - if (jabawsUrl != null) + allowServices = !("none".equals(jabawsUrl)); + if (allowServices && jabawsUrl != null) { try { @@ -469,7 +472,8 @@ public class Jalview implements ApplicationSingletonI * @j2sIgnore */ { - desktop.startServiceDiscovery(); + if (allowServices) + desktop.startServiceDiscovery(); if (!aparser.contains("nousagestats")) { startUsageStats(desktop); @@ -525,9 +529,11 @@ public class Jalview implements ApplicationSingletonI } /** - * Parse all command-line String[] arguments as well as all JavaScript-derived parameters from Info. + * Parse all command-line String[] arguments as well as all JavaScript-derived + * parameters from Info. * - * We allow for this method to be run from JavaScript. Basically allowing simple scripting. + * We allow for this method to be run from JavaScript. Basically allowing + * simple scripting. * * @param aparser * @param isStartup @@ -573,6 +579,8 @@ public class Jalview implements ApplicationSingletonI System.exit(1); } + setDisplayParameters(aparser); + // time to open a file. long progress = -1; @@ -582,7 +590,65 @@ public class Jalview implements ApplicationSingletonI // Finally, deal with the remaining input data. AlignFrame af = null; - if (file != null) + JalviewJSApp jsApp = (isJS ? new JalviewJSApp(this, aparser) : null); + + if (file == null) + { + if (isJS) + { + // JalviewJS allows sequence1 sequence2 .... + + } + else if (!headless && Cache.getDefault("SHOW_STARTUP_FILE", true)) + /** + * Java only + * + * @j2sIgnore + */ + { + + // We'll only open the default file if the desktop is visible. + // And the user + // //////////////////// + + file = Cache.getDefault("STARTUP_FILE", + Cache.getDefault("www.jalview.org", + "http://www.jalview.org") + + "/examples/exampleFile_2_7.jar"); + if (file.equals( + "http://www.jalview.org/examples/exampleFile_2_3.jar")) + { + // hardwire upgrade of the startup file + file.replace("_2_3.jar", "_2_7.jar"); + // and remove the stale setting + Cache.removeProperty("STARTUP_FILE"); + } + + protocol = DataSourceType.FILE; + + if (file.indexOf("http:") > -1) + { + protocol = DataSourceType.URL; + } + + if (file.endsWith(".jar")) + { + format = FileFormat.Jalview; + } + else + { + try + { + format = new IdentifyFile().identify(file, protocol); + } catch (FileFormatException e) + { + // TODO what? + } + } + af = fileLoader.LoadFileWaitTillLoaded(file, protocol, format); + } + } + else { if (!headless) { @@ -613,6 +679,7 @@ public class Jalview implements ApplicationSingletonI } } } + String fileFormat = (isJS ? (String) aparser.getAppletValue("format", null, true) : null); @@ -631,35 +698,11 @@ public class Jalview implements ApplicationSingletonI // TODO ? } - if (aparser.contains(ArgsParser.NOMENUBAR)) - { - noMenuBar = true; - System.out.println("CMD [nomenu] executed successfully!"); - } - - if (aparser.contains(ArgsParser.NOSTATUS)) - { - noStatus = true; - System.out.println("CMD [nostatus] executed successfully!"); - } - - if (aparser.contains(ArgsParser.NOANNOTATION) - || aparser.contains(ArgsParser.NOANNOTATION2)) - { - noAnnotation = true; - System.out.println("CMD no-annotation executed successfully!"); - } - if (aparser.contains(ArgsParser.NOCALCULATION)) - { - noCalculation = true; - System.out.println("CMD [nocalculation] executed successfully!"); - } - af = new FileLoader(!headless).LoadFileWaitTillLoaded(file, protocol, format); if (af == null) { - System.out.println("error"); + System.out.println("jalview error - AlignFrame was not created"); } else { @@ -694,133 +737,11 @@ public class Jalview implements ApplicationSingletonI } setCurrentAlignFrame(af); - String data = aparser.getValue(ArgsParser.COLOUR, true); - if (data != null) - { - data.replaceAll("%20", " "); - - ColourSchemeI cs = ColourSchemeProperty.getColourScheme( - af.getViewport(), af.getViewport().getAlignment(), data); - - if (cs != null) - { - System.out.println( - "CMD [-color " + data + "] executed successfully!"); - } - af.changeColour(cs); - } - - // Must maintain ability to use the groups flag - data = aparser.getValue(ArgsParser.GROUPS, true); - if (data != null) - { - af.parseFeaturesFile(data, - AppletFormatAdapter.checkProtocol(data)); - // System.out.println("Added " + data); - System.out.println( - "CMD groups[-" + data + "] executed successfully!"); - } - data = aparser.getValue(ArgsParser.FEATURES, true); - if (data != null) - { - af.parseFeaturesFile(data, - AppletFormatAdapter.checkProtocol(data)); - // System.out.println("Added " + data); - System.out.println( - "CMD [-features " + data + "] executed successfully!"); - } - data = aparser.getValue(ArgsParser.ANNOTATIONS, true); - if (data != null) - { - af.loadJalviewDataFile(data, null, null, null); - // System.out.println("Added " + data); - System.out.println( - "CMD [-annotations " + data + "] executed successfully!"); - } - - // JavaScript feature - - if (aparser.contains(ArgsParser.SHOWOVERVIEW)) - { - af.overviewMenuItem_actionPerformed(null); - System.out.println("CMD [showoverview] executed successfully!"); - } - - // set or clear the sortbytree flag. - if (aparser.contains(ArgsParser.SORTBYTREE)) - { - af.getViewport().setSortByTree(true); - if (af.getViewport().getSortByTree()) - { - System.out.println("CMD [-sortbytree] executed successfully!"); - } - } - - boolean doUpdateAnnotation = false; - /** - * we do this earlier in JalviewJS because of a complication with - * SHOWOVERVIEW - * - * For now, just fixing this in JalviewJS. - * - * - * @j2sIgnore - * - */ - { - if (aparser.contains(ArgsParser.NOANNOTATION) - || aparser.contains(ArgsParser.NOANNOTATION2)) - { - af.getViewport().setShowAnnotation(false); - if (!af.getViewport().isShowAnnotation()) - { - doUpdateAnnotation = true; - System.out - .println("CMD no-annotation executed successfully!"); - } - } - } - - if (aparser.contains(ArgsParser.NOSORTBYTREE)) - { - af.getViewport().setSortByTree(false); - if (!af.getViewport().getSortByTree()) - { - doUpdateAnnotation = true; - System.out - .println("CMD [-nosortbytree] executed successfully!"); - } - } - if (doUpdateAnnotation) - { // BH 2019.07.24 - af.setMenusForViewport(); - af.alignPanel.updateLayout(); - } - - data = aparser.getValue(ArgsParser.TREE, true); - if (data != null) - { - try - { - NewickFile nf = new NewickFile(data, - AppletFormatAdapter.checkProtocol(data)); - af.getViewport() - .setCurrentTree(af.showNewickTree(nf, data).getTree()); - System.out.println( - "CMD [-tree " + data + "] executed successfully!"); - } catch (IOException ex) - { - System.err.println("Couldn't add tree " + data); - ex.printStackTrace(System.err); - } - } - // TODO - load PDB structure(s) to alignment JAL-629 - // (associate with identical sequence in alignment, or a specified - // sequence) - + setFrameDependentProperties(aparser, af); + if (isJS) { - new JalviewJSApp(this, aparser, af); + jsApp.initFromParams(af); } else /** @@ -840,61 +761,10 @@ public class Jalview implements ApplicationSingletonI + "] executed successfully!"); groovyscript = null; } - createOutputFiles(aparser, af, format); - } - } - } - else - { - if (!isJS && !headless && Cache.getDefault("SHOW_STARTUP_FILE", true)) - /** - * Java only - * - * @j2sIgnore - */ - { - - // We'll only open the default file if the desktop is visible. - // And the user - // //////////////////// - - file = Cache.getDefault("STARTUP_FILE", - Cache.getDefault("www.jalview.org", - "http://www.jalview.org") - + "/examples/exampleFile_2_7.jar"); - if (file.equals( - "http://www.jalview.org/examples/exampleFile_2_3.jar")) - { - // hardwire upgrade of the startup file - file.replace("_2_3.jar", "_2_7.jar"); - // and remove the stale setting - Cache.removeProperty("STARTUP_FILE"); - } - - protocol = DataSourceType.FILE; - - if (file.indexOf("http:") > -1) - { - protocol = DataSourceType.URL; } - - if (file.endsWith(".jar")) - { - format = FileFormat.Jalview; + if (!isJS || !isStartup) { + createOutputFiles(aparser, format); } - else - { - try - { - format = new IdentifyFile().identify(file, protocol); - } catch (FileFormatException e) - { - // TODO what? - } - } - - af = fileLoader.LoadFileWaitTillLoaded(file, protocol, format); - } } // extract groovy arguments before anything else. @@ -923,9 +793,170 @@ public class Jalview implements ApplicationSingletonI } desktop.setInBatchMode(false); } - + + if (jsApp != null) { + jsApp.callInitCallback(); + } } + /** + * Set general display parameters irrespective of file loading or headlessness. + * + * @param aparser + */ + private void setDisplayParameters(ArgsParser aparser) + { + if (aparser.contains(ArgsParser.NOMENUBAR)) + { + noMenuBar = true; + System.out.println("CMD [nomenu] executed successfully!"); + } + + if (aparser.contains(ArgsParser.NOSTATUS)) + { + noStatus = true; + System.out.println("CMD [nostatus] executed successfully!"); + } + + if (aparser.contains(ArgsParser.NOANNOTATION) + || aparser.contains(ArgsParser.NOANNOTATION2)) + { + noAnnotation = true; + System.out.println("CMD no-annotation executed successfully!"); + } + if (aparser.contains(ArgsParser.NOCALCULATION)) + { + noCalculation = true; + System.out.println("CMD [nocalculation] executed successfully!"); + } + } + + + private void setFrameDependentProperties(ArgsParser aparser, + AlignFrame af) + { + String data = aparser.getValue(ArgsParser.COLOUR, true); + if (data != null) + { + data.replaceAll("%20", " "); + + ColourSchemeI cs = ColourSchemeProperty.getColourScheme( + af.getViewport(), af.getViewport().getAlignment(), data); + + if (cs != null) + { + System.out.println( + "CMD [-color " + data + "] executed successfully!"); + } + af.changeColour(cs); + } + + // Must maintain ability to use the groups flag + data = aparser.getValue(ArgsParser.GROUPS, true); + if (data != null) + { + af.parseFeaturesFile(data, + AppletFormatAdapter.checkProtocol(data)); + // System.out.println("Added " + data); + System.out.println( + "CMD groups[-" + data + "] executed successfully!"); + } + data = aparser.getValue(ArgsParser.FEATURES, true); + if (data != null) + { + af.parseFeaturesFile(data, + AppletFormatAdapter.checkProtocol(data)); + // System.out.println("Added " + data); + System.out.println( + "CMD [-features " + data + "] executed successfully!"); + } + data = aparser.getValue(ArgsParser.ANNOTATIONS, true); + if (data != null) + { + af.loadJalviewDataFile(data, null, null, null); + // System.out.println("Added " + data); + System.out.println( + "CMD [-annotations " + data + "] executed successfully!"); + } + + // JavaScript feature + + if (aparser.contains(ArgsParser.SHOWOVERVIEW)) + { + af.overviewMenuItem_actionPerformed(null); + System.out.println("CMD [showoverview] executed successfully!"); + } + + // set or clear the sortbytree flag. + if (aparser.contains(ArgsParser.SORTBYTREE)) + { + af.getViewport().setSortByTree(true); + if (af.getViewport().getSortByTree()) + { + System.out.println("CMD [-sortbytree] executed successfully!"); + } + } + + boolean doUpdateAnnotation = false; + /** + * we do this earlier in JalviewJS because of a complication with + * SHOWOVERVIEW + * + * For now, just fixing this in JalviewJS. + * + * + * @j2sIgnore + * + */ + { + if (noAnnotation) + { + af.getViewport().setShowAnnotation(false); + if (!af.getViewport().isShowAnnotation()) + { + doUpdateAnnotation = true; + } + } + } + + if (aparser.contains(ArgsParser.NOSORTBYTREE)) + { + af.getViewport().setSortByTree(false); + if (!af.getViewport().getSortByTree()) + { + doUpdateAnnotation = true; + System.out + .println("CMD [-nosortbytree] executed successfully!"); + } + } + if (doUpdateAnnotation) + { // BH 2019.07.24 + af.setMenusForViewport(); + af.alignPanel.updateLayout(); + } + + data = aparser.getValue(ArgsParser.TREE, true); + if (data != null) + { + try + { + NewickFile nf = new NewickFile(data, + AppletFormatAdapter.checkProtocol(data)); + af.getViewport() + .setCurrentTree(af.showNewickTree(nf, data).getTree()); + System.out.println( + "CMD [-tree " + data + "] executed successfully!"); + } catch (IOException ex) + { + System.err.println("Couldn't add tree " + data); + ex.printStackTrace(System.err); + } + } + // TODO - load PDB structure(s) to alignment JAL-629 + // (associate with identical sequence in alignment, or a specified + // sequence) + + } /** * Writes an output file for each format (if any) specified in the @@ -943,12 +974,12 @@ public class Jalview implements ApplicationSingletonI * corresponding alignment image output. * * @param aparser - * @param af * @param format */ - private void createOutputFiles(ArgsParser aparser, AlignFrame af, + private void createOutputFiles(ArgsParser aparser, FileFormatI format) { + AlignFrame af = currentAlignFrame; while (aparser.getSize() >= 2) { String outputFormat = aparser.nextValue(); @@ -1265,5 +1296,18 @@ public class Jalview implements ApplicationSingletonI // System.out.println("Jalview worker " + worker.getClass().getSimpleName() // + " " + status); } - + + + private static boolean isInteractive = true; + + public static boolean isInteractive() + { + return isInteractive; + } + + public static void setInteractive(boolean tf) + { + isInteractive = tf; + } + }