X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FJalview.java;h=32701449938fef85bca8065684817671c8895df8;hb=20a4d7ddb86ee996f2b6617a0470922b83354c35;hp=954bb34bd63bc94e4eedfc845a59a073c7a0500a;hpb=136c0793b90b72b928c4d77dc109dd5c644e00d3;p=jalview.git diff --git a/src/jalview/bin/Jalview.java b/src/jalview/bin/Jalview.java index 954bb34..3270144 100755 --- a/src/jalview/bin/Jalview.java +++ b/src/jalview/bin/Jalview.java @@ -20,9 +20,6 @@ */ package jalview.bin; -import groovy.lang.Binding; -import groovy.util.GroovyScriptEngine; - import jalview.ext.so.SequenceOntology; import jalview.gui.AlignFrame; import jalview.gui.Desktop; @@ -64,12 +61,23 @@ import java.util.HashMap; import java.util.Map; import java.util.Vector; +import javax.swing.LookAndFeel; import javax.swing.UIManager; +import groovy.lang.Binding; +import groovy.util.GroovyScriptEngine; + /** * Main class for Jalview Application
*
- * start with java -Djava.ext.dirs=$PATH_TO_LIB$ jalview.bin.Jalview + * start with: java -classpath "$PATH_TO_LIB$/*:$PATH_TO_CLASSES$" \ + * jalview.bin.Jalview + * + * or on Windows: java -classpath "$PATH_TO_LIB$/*;$PATH_TO_CLASSES$" \ + * jalview.bin.Jalview jalview.bin.Jalview + * + * (ensure -classpath arg is quoted to avoid shell expansion of '*' and do not + * embellish '*' to e.g. '*.jar') * * @author $author$ * @version $Revision$ @@ -148,7 +156,6 @@ public class Jalview af.setProgressBar(MessageManager .getString("status.das_features_being_retrived"), id); af.featureSettings_actionPerformed(null); - af.featureSettings.fetchDasFeatures(dasSources, true); af.setProgressBar(null, id); synchronized (us) { @@ -188,8 +195,8 @@ public class Jalview void doMain(String[] args) { System.setSecurityManager(null); - System.out.println("Java version: " - + System.getProperty("java.version")); + System.out + .println("Java version: " + System.getProperty("java.version")); System.out.println(System.getProperty("os.arch") + " " + System.getProperty("os.name") + " " + System.getProperty("os.version")); @@ -212,8 +219,8 @@ public class Jalview Cache.loadProperties(usrPropsFile); // must do this before if (usrPropsFile != null) { - System.out.println("CMD [-props " + usrPropsFile - + "] executed successfully!"); + System.out.println( + "CMD [-props " + usrPropsFile + "] executed successfully!"); } // anything else! @@ -224,12 +231,12 @@ public class Jalview try { Jws2Discoverer.getDiscoverer().setPreferredUrl(jabawsUrl); - System.out.println("CMD [-jabaws " + jabawsUrl - + "] executed successfully!"); + System.out.println( + "CMD [-jabaws " + jabawsUrl + "] executed successfully!"); } catch (MalformedURLException e) { - System.err.println("Invalid jabaws parameter: " + jabawsUrl - + " ignored"); + System.err.println( + "Invalid jabaws parameter: " + jabawsUrl + " ignored"); } } @@ -263,9 +270,8 @@ public class Jalview } catch (NoClassDefFoundError error) { error.printStackTrace(); - System.out - .println("\nEssential logging libraries not found." - + "\nUse: java -Djava.ext.dirs=$PATH_TO_LIB$ jalview.bin.Jalview"); + System.out.println("\nEssential logging libraries not found." + + "\nUse: java -classpath \"$PATH_TO_LIB$/*:$PATH_TO_CLASSES$\" jalview.bin.Jalview"); System.exit(0); } @@ -276,20 +282,43 @@ public class Jalview UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception ex) { + System.err.println("Unexpected Look and Feel Exception"); + ex.printStackTrace(); } if (Platform.isAMac()) { + + LookAndFeel lookAndFeel = ch.randelshofer.quaqua.QuaquaManager + .getLookAndFeel(); System.setProperty("com.apple.mrj.application.apple.menu.about.name", "Jalview"); System.setProperty("apple.laf.useScreenMenuBar", "true"); - try + if (lookAndFeel != null) { - UIManager.setLookAndFeel(ch.randelshofer.quaqua.QuaquaManager - .getLookAndFeel()); - } catch (Throwable e) + try + { + UIManager.setLookAndFeel(lookAndFeel); + } catch (Throwable e) + { + System.err.println( + "Failed to set QuaQua look and feel: " + e.toString()); + } + } + if (lookAndFeel == null || !(lookAndFeel.getClass() + .isAssignableFrom(UIManager.getLookAndFeel().getClass())) + || !UIManager.getLookAndFeel().getClass().toString() + .toLowerCase().contains("quaqua")) { - System.err.println("Failed to set QuaQua look and feel: " - + e.toString()); + try + { + System.err.println( + "Quaqua LaF not available on this plaform. Using VAqua(4).\nSee https://issues.jalview.org/browse/JAL-2976"); + UIManager.setLookAndFeel("org.violetlib.aqua.AquaLookAndFeel"); + } catch (Throwable e) + { + System.err.println( + "Failed to reset look and feel: " + e.toString()); + } } } @@ -326,8 +355,8 @@ public class Jalview // questionnaire Cache.log.debug("Starting questionnaire url at " + url); desktop.checkForQuestionnaire(url); - System.out.println("CMD questionnaire[-" + url - + "] executed successfully!"); + System.out.println( + "CMD questionnaire[-" + url + "] executed successfully!"); } else { @@ -339,8 +368,8 @@ public class Jalview // "http://anaplog.compbio.dundee.ac.uk/cgi-bin/questionnaire.pl"; // // String defurl = "http://www.jalview.org/cgi-bin/questionnaire.pl"; - Cache.log.debug("Starting questionnaire with default url: " - + defurl); + Cache.log.debug( + "Starting questionnaire with default url: " + defurl); desktop.checkForQuestionnaire(defurl); } } @@ -383,8 +412,8 @@ public class Jalview { if (desktop == null || headless) { - System.out - .println("Headless vamsas sessions not yet supported. Sorry."); + System.out.println( + "Headless vamsas sessions not yet supported. Sorry."); System.exit(1); } // if we have a file, start a new session and import it. @@ -434,8 +463,8 @@ public class Jalview { if (desktop.joinVamsasSession(vamsasSession)) { - System.out.println("Successfully joined vamsas session " - + vamsasSession); + System.out.println( + "Successfully joined vamsas session " + vamsasSession); } else { @@ -444,16 +473,16 @@ public class Jalview } } catch (Exception e) { - System.err.println("ERROR: Failed to join vamsas session " - + vamsasSession); + System.err.println( + "ERROR: Failed to join vamsas session " + vamsasSession); e.printStackTrace(); } if (vamsasImport != null) { // the Jalview specific remnants can now be imported into the new // session at the user's leisure. - Cache.log - .info("Skipping Push for import of data into existing vamsas session."); // TODO: + Cache.log.info( + "Skipping Push for import of data into existing vamsas session."); // TODO: // enable // this // when @@ -468,8 +497,9 @@ public class Jalview { if (!headless) { - desktop.setProgressBar(MessageManager - .getString("status.processing_commandline_args"), + desktop.setProgressBar( + MessageManager + .getString("status.processing_commandline_args"), progress = System.currentTimeMillis()); } System.out.println("CMD [-open " + file + "] executed successfully!"); @@ -510,13 +540,13 @@ public class Jalview { data.replaceAll("%20", " "); - ColourSchemeI cs = ColourSchemeProperty.getColourScheme(af - .getViewport().getAlignment(), data); + ColourSchemeI cs = ColourSchemeProperty + .getColourScheme(af.getViewport().getAlignment(), data); if (cs != null) { - System.out.println("CMD [-color " + data - + "] executed successfully!"); + System.out.println( + "CMD [-color " + data + "] executed successfully!"); } af.changeColour(cs); } @@ -528,8 +558,8 @@ public class Jalview af.parseFeaturesFile(data, AppletFormatAdapter.checkProtocol(data)); // System.out.println("Added " + data); - System.out.println("CMD groups[-" + data - + "] executed successfully!"); + System.out.println( + "CMD groups[-" + data + "] executed successfully!"); } data = aparser.getValue("features", true); if (data != null) @@ -537,8 +567,8 @@ public class Jalview af.parseFeaturesFile(data, AppletFormatAdapter.checkProtocol(data)); // System.out.println("Added " + data); - System.out.println("CMD [-features " + data - + "] executed successfully!"); + System.out.println( + "CMD [-features " + data + "] executed successfully!"); } data = aparser.getValue("annotations", true); @@ -546,8 +576,8 @@ public class Jalview { af.loadJalviewDataFile(data, null, null, null); // System.out.println("Added " + data); - System.out.println("CMD [-annotations " + data - + "] executed successfully!"); + System.out.println( + "CMD [-annotations " + data + "] executed successfully!"); } // set or clear the sortbytree flag. if (aparser.contains("sortbytree")) @@ -580,12 +610,12 @@ public class Jalview { try { - System.out.println("CMD [-tree " + data - + "] executed successfully!"); + System.out.println( + "CMD [-tree " + data + "] executed successfully!"); NewickFile nf = new NewickFile(data, AppletFormatAdapter.checkProtocol(data)); - af.getViewport().setCurrentTree( - af.showNewickTree(nf, data).getTree()); + af.getViewport() + .setCurrentTree(af.showNewickTree(nf, data).getTree()); } catch (IOException ex) { System.err.println("Couldn't add tree " + data); @@ -666,16 +696,16 @@ public class Jalview } try { - BioJsHTMLOutput - .refreshVersionInfo(BioJsHTMLOutput.BJS_TEMPLATES_LOCAL_DIRECTORY); + BioJsHTMLOutput.refreshVersionInfo( + BioJsHTMLOutput.BJS_TEMPLATES_LOCAL_DIRECTORY); } catch (URISyntaxException e) { e.printStackTrace(); } BioJsHTMLOutput bjs = new BioJsHTMLOutput(af.alignPanel); bjs.exportHTML(file); - System.out.println("Creating BioJS MSA Viwer HTML file: " - + file); + System.out + .println("Creating BioJS MSA Viwer HTML file: " + file); continue; } else if (outputFormat.equalsIgnoreCase("imgMap")) @@ -687,8 +717,8 @@ public class Jalview else if (outputFormat.equalsIgnoreCase("eps")) { File outputFile = new File(file); - System.out.println("Creating EPS file: " - + outputFile.getAbsolutePath()); + System.out.println( + "Creating EPS file: " + outputFile.getAbsolutePath()); af.createEPS(outputFile); continue; } @@ -720,12 +750,12 @@ public class Jalview if (!headless && file == null && vamsasImport == null && jalview.bin.Cache.getDefault("SHOW_STARTUP_FILE", true)) { - file = jalview.bin.Cache.getDefault( - "STARTUP_FILE", + file = jalview.bin.Cache.getDefault("STARTUP_FILE", jalview.bin.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")) + 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"); @@ -781,8 +811,8 @@ public class Jalview } else { - System.err - .println("Sorry. Groovy Support is not available, so ignoring the provided groovy script " + System.err.println( + "Sorry. Groovy Support is not available, so ignoring the provided groovy script " + groovyscript); } } @@ -799,8 +829,8 @@ public class Jalview private static void showUsage() { - System.out - .println("Usage: jalview -open [FILE] [OUTPUT_FORMAT] [OUTPUT_FILE]\n\n" + System.out.println( + "Usage: jalview -open [FILE] [OUTPUT_FORMAT] [OUTPUT_FILE]\n\n" + "-nodisplay\tRun Jalview without User Interface.\n" + "-props FILE\tUse the given Jalview properties file instead of users default.\n" + "-colour COLOURSCHEME\tThe colourscheme to be applied to the alignment\n" @@ -828,14 +858,18 @@ public class Jalview + "-nousagestats\tTurn off google analytics tracking for this session.\n" + "-sortbytree OR -nosortbytree\tEnable or disable sorting of the given alignment by the given tree\n" // + - // "-setprop PROPERTY=VALUE\tSet the given Jalview property, after all other properties files have been read\n\t (quote the 'PROPERTY=VALUE' pair to ensure spaces are passed in correctly)" + // "-setprop PROPERTY=VALUE\tSet the given Jalview property, + // after all other properties files have been read\n\t + // (quote the 'PROPERTY=VALUE' pair to ensure spaces are + // passed in correctly)" + "-jabaws URL\tSpecify URL for Jabaws services (e.g. for a local installation).\n" + "-dasserver nickname=URL\tAdd and enable a das server with given nickname\n\t\t\t(alphanumeric or underscores only) for retrieval of features for all alignments.\n" + "\t\t\tSources that also support the sequence command may be specified by prepending the URL with sequence:\n" + "\t\t\t e.g. sequence:http://localdas.somewhere.org/das/source)\n" + "-fetchfrom nickname\tQuery nickname for features for the alignments and display them.\n" // + - // "-vdoc vamsas-document\tImport vamsas document into new session or join existing session with same URN\n" + // "-vdoc vamsas-document\tImport vamsas document into new + // session or join existing session with same URN\n" // + "-vses vamsas-session\tJoin session with given URN\n" + "-groovy FILE\tExecute groovy script in FILE, after all other arguments have been processed (if FILE is the text 'STDIN' then the file will be read from STDIN)\n" + "\n~Read documentation in Application or visit http://www.jalview.org for description of Features and Annotations file~\n\n"); @@ -846,10 +880,8 @@ public class Jalview /** * start a User Config prompt asking if we can log usage statistics. */ - PromptUserConfig prompter = new PromptUserConfig( - Desktop.desktop, - "USAGESTATS", - "Jalview Usage Statistics", + PromptUserConfig prompter = new PromptUserConfig(Desktop.desktop, + "USAGESTATS", "Jalview Usage Statistics", "Do you want to help make Jalview better by enabling " + "the collection of usage statistics with Google Analytics ?" + "\n\n(you can enable or disable usage tracking in the preferences)", @@ -858,8 +890,8 @@ public class Jalview @Override public void run() { - Cache.log - .debug("Initialising googletracker for usage stats."); + Cache.log.debug( + "Initialising googletracker for usage stats."); Cache.initGoogleTracker(); Cache.log.debug("Tracking enabled."); } @@ -899,10 +931,10 @@ public class Jalview try { tfile = File.createTempFile("jalview", "groovy"); - PrintWriter outfile = new PrintWriter(new OutputStreamWriter( - new FileOutputStream(tfile))); - BufferedReader br = new BufferedReader(new InputStreamReader( - System.in)); + PrintWriter outfile = new PrintWriter( + new OutputStreamWriter(new FileOutputStream(tfile))); + BufferedReader br = new BufferedReader( + new InputStreamReader(System.in)); String line = null; while ((line = br.readLine()) != null) { @@ -915,8 +947,8 @@ public class Jalview } catch (Exception ex) { System.err.println("Failed to read from STDIN into tempfile " - + ((tfile == null) ? "(tempfile wasn't created)" : tfile - .toString())); + + ((tfile == null) ? "(tempfile wasn't created)" + : tfile.toString())); ex.printStackTrace(); return; } @@ -925,8 +957,8 @@ public class Jalview sfile = tfile.toURI().toURL(); } catch (Exception x) { - System.err - .println("Unexpected Malformed URL Exception for temporary file created from STDIN: " + System.err.println( + "Unexpected Malformed URL Exception for temporary file created from STDIN: " + tfile.toURI()); x.printStackTrace(); return; @@ -968,7 +1000,7 @@ public class Jalview } try { - Map vbinding = new HashMap(); + Map vbinding = new HashMap<>(); vbinding.put("Jalview", this); if (af != null) { @@ -1013,9 +1045,8 @@ public class Jalview nickname = data.substring(0, pos); } url = data.substring(pos + 1); - if (url != null - && (url.startsWith("http:") || url - .startsWith("sequence:http:"))) + if (url != null && (url.startsWith("http:") + || url.startsWith("sequence:http:"))) { if (nickname == null) { @@ -1030,17 +1061,17 @@ public class Jalview locsources += "\t"; } locsources = locsources + nickname + "|" + url; - System.err - .println("NOTE! dasserver parameter not yet really supported (got args of " + System.err.println( + "NOTE! dasserver parameter not yet really supported (got args of " + nickname + "|" + url); if (source == null) { - source = new Vector(); + source = new Vector<>(); } source.addElement(nickname); } - System.out.println("CMD [-dasserver " + data - + "] executed successfully!"); + System.out.println( + "CMD [-dasserver " + data + "] executed successfully!"); } // loop until no more server entries are found. if (locsources != null && locsources.indexOf('|') > -1) { @@ -1053,7 +1084,7 @@ public class Jalview System.out.println("adding source '" + data + "'"); if (source == null) { - source = new Vector(); + source = new Vector<>(); } source.addElement(data); }