X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FJalview.java;h=d0b3232b47d6658d3841be320b89b40e16b86086;hb=992b7f3bc70dbd2bb1749d7ab9b51eced013be23;hp=0fe16645fc85cd09e4c7b740d85fdb438cf7c9a0;hpb=10e637daad8983c41db8679baabea5563d7371f4;p=jalview.git diff --git a/src/jalview/bin/Jalview.java b/src/jalview/bin/Jalview.java index 0fe1664..d0b3232 100755 --- a/src/jalview/bin/Jalview.java +++ b/src/jalview/bin/Jalview.java @@ -20,6 +20,14 @@ */ package jalview.bin; +import jalview.gui.AlignFrame; +import jalview.gui.Desktop; +import jalview.io.BioJsHTMLOutput; +import jalview.io.HtmlSvgOutput; +import jalview.util.MessageManager; +import jalview.util.Platform; +import jalview.ws.jws2.Jws2Discoverer; + import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; @@ -43,14 +51,6 @@ import java.util.Map; import java.util.Vector; import javax.swing.UIManager; -import javax.swing.UnsupportedLookAndFeelException; - -import jalview.gui.AlignFrame; -import jalview.gui.Desktop; -import jalview.io.HtmlSvgOutput; -import jalview.util.MessageManager; -import jalview.util.Platform; -import jalview.ws.jws2.Jws2Discoverer; /** * Main class for Jalview Application
@@ -67,6 +67,7 @@ public class Jalview // grab all the rights we can the JVM Policy.setPolicy(new Policy() { + @Override public PermissionCollection getPermissions(CodeSource codesource) { Permissions perms = new Permissions(); @@ -74,6 +75,7 @@ public class Jalview return (perms); } + @Override public void refresh() { } @@ -88,28 +90,12 @@ public class Jalview */ public static void main(String[] args) { + System.setSecurityManager(null); System.out.println("Java version: " + System.getProperty("java.version")); System.out.println(System.getProperty("os.arch") + " " + System.getProperty("os.name") + " " + System.getProperty("os.version")); - // if (new Platform().isAMac()) - // { - // // System.setProperty("com.apple.mrj.application.apple.menu.about.name", - // // "Jalview"); - // // System.setProperty("apple.laf.useScreenMenuBar", "true"); - // try - // { - // UIManager.setLookAndFeel(ch.randelshofer.quaqua.QuaquaManager - // .getLookAndFeel()); - // System.out - // .println("--------------------------------------------> in here"); - // } catch (UnsupportedLookAndFeelException e) - // { - // // TODO Auto-generated catch block - // e.printStackTrace(); - // } - // } ArgsParser aparser = new ArgsParser(args); boolean headless = false; @@ -125,7 +111,14 @@ public class Jalview System.setProperty("java.awt.headless", "true"); headless = true; } - Cache.loadProperties(aparser.getValue("props")); // must do this before + String usrPropsFile = aparser.getValue("props"); + Cache.loadProperties(usrPropsFile); // must do this before + if (usrPropsFile != null) + { + System.out.println("CMD [-props " + usrPropsFile + + "] executed successfully!"); + } + // anything else! final String jabawsUrl = aparser.getValue("jabaws"); @@ -134,6 +127,8 @@ public class Jalview try { Jws2Discoverer.getDiscoverer().setPreferredUrl(jabawsUrl); + System.out.println("CMD [-jabaws " + jabawsUrl + + "] executed successfully!"); } catch (MalformedURLException e) { System.err.println("Invalid jabaws parameter: " + jabawsUrl @@ -185,7 +180,7 @@ public class Jalview } catch (Exception ex) { } - if (new Platform().isAMac()) + if (Platform.isAMac()) { System.setProperty("com.apple.mrj.application.apple.menu.about.name", "Jalview"); @@ -194,10 +189,10 @@ public class Jalview { UIManager.setLookAndFeel(ch.randelshofer.quaqua.QuaquaManager .getLookAndFeel()); - } catch (UnsupportedLookAndFeelException e) + } catch (Throwable e) { - // TODO Auto-generated catch block - e.printStackTrace(); + System.err.println("Failed to set QuaQua look and feel: " + + e.toString()); } } @@ -211,6 +206,11 @@ public class Jalview { startUsageStats(desktop); } + else + { + System.err.println("CMD [-nousagestats] executed successfully!"); + } + if (!aparser.contains("noquestionnaire")) { String url = aparser.getValue("questionnaire"); @@ -220,6 +220,8 @@ public class Jalview // questionnaire Cache.log.debug("Starting questionnaire url at " + url); desktop.checkForQuestionnaire(url); + System.out.println("CMD questionnaire[-" + url + + "] executed successfully!"); } else { @@ -238,11 +240,20 @@ public class Jalview } } } + else + { + System.err.println("CMD [-noquestionnaire] executed successfully!"); + } desktop.checkForNews(); } + if (!isHeadlessMode()) + { + BioJsHTMLOutput.updateBioJS(); + } + String file = null, protocol = null, format = null, data = null; - jalview.io.FileLoader fileLoader = new jalview.io.FileLoader(); + jalview.io.FileLoader fileLoader = new jalview.io.FileLoader(!headless); Vector getFeatures = null; // vector of das source nicknames to fetch // features from // loading is done. @@ -348,10 +359,11 @@ 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("Opening file: " + file); + System.out.println("CMD [-open " + file + "] executed successfully!"); if (!file.startsWith("http://")) { @@ -367,7 +379,7 @@ public class Jalview protocol = jalview.io.AppletFormatAdapter.checkProtocol(file); - format = new jalview.io.IdentifyFile().Identify(file, protocol); + format = new jalview.io.IdentifyFile().identify(file, protocol); AlignFrame af = fileLoader.LoadFileWaitTillLoaded(file, protocol, format); @@ -377,7 +389,7 @@ public class Jalview } else { - + Desktop.setCurrentAlignFrame(af); data = aparser.getValue("colour", true); if (data != null) { @@ -393,8 +405,11 @@ public class Jalview ucs.parseAppletParameter(data); cs = ucs; } - - System.out.println("colour is " + data); + else + { + System.out.println("CMD [-color " + data + + "] executed successfully!"); + } af.changeColour(cs); } @@ -404,34 +419,53 @@ public class Jalview { af.parseFeaturesFile(data, jalview.io.AppletFormatAdapter.checkProtocol(data)); - System.out.println("Added " + data); + // System.out.println("Added " + data); + System.out.println("CMD groups[-" + data + + "] executed successfully!"); } data = aparser.getValue("features", true); if (data != null) { af.parseFeaturesFile(data, jalview.io.AppletFormatAdapter.checkProtocol(data)); - System.out.println("Added " + data); + // System.out.println("Added " + data); + System.out.println("CMD [-features " + data + + "] executed successfully!"); } data = aparser.getValue("annotations", true); if (data != null) { af.loadJalviewDataFile(data, null, null, null); - System.out.println("Added " + data); + // System.out.println("Added " + data); + System.out.println("CMD [-annotations " + data + + "] executed successfully!"); } // set or clear the sortbytree flag. if (aparser.contains("sortbytree")) { af.getViewport().setSortByTree(true); + if (af.getViewport().getSortByTree()) + { + System.out.println("CMD [-sortbytree] executed successfully!"); + } } if (aparser.contains("no-annotation")) { af.getViewport().setShowAnnotation(false); + if (!af.getViewport().isShowAnnotation()) + { + System.out.println("CMD no-annotation executed successfully!"); + } } if (aparser.contains("nosortbytree")) { af.getViewport().setSortByTree(false); + if (!af.getViewport().getSortByTree()) + { + System.out + .println("CMD [-nosortbytree] executed successfully!"); + } } data = aparser.getValue("tree", true); if (data != null) @@ -439,13 +473,14 @@ public class Jalview jalview.io.NewickFile fin = null; try { + System.out.println("CMD [-tree " + data + + "] executed successfully!"); fin = new jalview.io.NewickFile(data, jalview.io.AppletFormatAdapter.checkProtocol(data)); if (fin != null) { af.getViewport().setCurrentTree( af.ShowNewickTree(fin, data).getTree()); - System.out.println("Added tree " + data); } } catch (IOException ex) { @@ -481,18 +516,10 @@ public class Jalview { // Execute the groovy script after we've done all the rendering stuff // and before any images or figures are generated. - if (jalview.bin.Cache.groovyJarsPresent()) - { - System.out.println("Executing script " + groovyscript); - executeGroovyScript(groovyscript, new Object[] - { desktop, af }); - } - else - { - System.err - .println("Sorry. Groovy Support is not available, so ignoring the provided groovy script " - + groovyscript); - } + System.out.println("Executing script " + groovyscript); + executeGroovyScript(groovyscript, new Object[] { desktop, af }); + System.out.println("CMD groovy[" + groovyscript + + "] executed successfully!"); groovyscript = null; } String imageName = "unnamed.png"; @@ -532,8 +559,10 @@ public class Jalview } else if (format.equalsIgnoreCase("eps")) { - System.out.println("Creating EPS file: " + file); - af.createEPS(new java.io.File(file)); + File outputFile = new java.io.File(file); + System.out.println("Creating EPS file: " + + outputFile.getAbsolutePath()); + af.createEPS(outputFile); continue; } @@ -590,7 +619,7 @@ public class Jalview } else { - format = new jalview.io.IdentifyFile().Identify(file, protocol); + format = new jalview.io.IdentifyFile().identify(file, protocol); } startUpAlframe = fileLoader.LoadFileWaitTillLoaded(file, protocol, @@ -615,8 +644,8 @@ public class Jalview if (jalview.bin.Cache.groovyJarsPresent()) { System.out.println("Executing script " + groovyscript); - executeGroovyScript(groovyscript, new Object[] - { desktop, startUpAlframe }); + executeGroovyScript(groovyscript, new Object[] { desktop, + startUpAlframe }); } else { @@ -653,6 +682,7 @@ public class Jalview + "-pileup FILE\tCreate alignment file FILE in Pileup format\n" + "-pir FILE\tCreate alignment file FILE in PIR format.\n" + "-blc FILE\tCreate alignment file FILE in BLC format.\n" + + "-json FILE\tCreate alignment file FILE in JSON format.\n" + "-jalview FILE\tCreate alignment file FILE in Jalview format.\n" + "-png FILE\tCreate PNG image FILE from alignment.\n" + "-svg FILE\tCreate SVG image FILE from alignment.\n" @@ -691,6 +721,7 @@ public class Jalview + "\n\n(you can enable or disable usage tracking in the preferences)", new Runnable() { + @Override public void run() { Cache.log @@ -700,6 +731,7 @@ public class Jalview } }, new Runnable() { + @Override public void run() { Cache.log.debug("Not enabling Google Tracking."); @@ -824,8 +856,7 @@ public class Jalview Object[] binding; int blen = ((jalviewContext[0] == null) ? 0 : 1) + ((jalviewContext[1] == null) ? 0 : 1); - String cnames[] = new String[] - { "Jalview", "currentAlFrame" }; + String cnames[] = new String[] { "Jalview", "currentAlFrame" }; bspec = new Class[blen * 2]; binding = new Object[blen * 2]; blen = 0; @@ -866,15 +897,15 @@ public class Jalview } Class gsec = cl.loadClass("groovy.util.GroovyScriptEngine"); - Constructor gseccons = gsec.getConstructor(new Class[] - { URL[].class }); // String[].class }); - Object gse = gseccons.newInstance(new Object[] - { new URL[] - { sfile } }); // .toString() } }); - java.lang.reflect.Method run = gsec.getMethod("run", new Class[] - { String.class, gbindingc }); - run.invoke(gse, new Object[] - { sfile.toString(), gbinding }); + Constructor gseccons = gsec + .getConstructor(new Class[] { URL[].class }); // String[].class + // }); + Object gse = gseccons + .newInstance(new Object[] { new URL[] { sfile } }); // .toString() + // } }); + java.lang.reflect.Method run = gsec.getMethod("run", new Class[] { + String.class, gbindingc }); + run.invoke(gse, new Object[] { sfile.toString(), gbinding }); success = true; } catch (Exception e) { @@ -939,6 +970,8 @@ public class Jalview } source.addElement(nickname); } + System.out.println("CMD [-dasserver " + data + + "] executed successfully!"); } // loop until no more server entries are found. if (locsources != null && locsources.indexOf('|') > -1) { @@ -977,6 +1010,16 @@ public class Jalview } return ff; } + + public static boolean isHeadlessMode() + { + String isheadless = System.getProperty("java.awt.headless"); + if (isheadless != null && isheadless.equalsIgnoreCase("true")) + { + return true; + } + return false; + } } /** @@ -991,6 +1034,7 @@ public class Jalview class rnabuttonlistener implements ActionListener { + @Override public void actionPerformed(ActionEvent arg0) { System.out.println("Good idea ! "); @@ -1000,6 +1044,7 @@ class rnabuttonlistener implements ActionListener class pbuttonlistener implements ActionListener { + @Override public void actionPerformed(ActionEvent arg0) { @@ -1120,6 +1165,7 @@ class FeatureFetcher new Thread(new Runnable() { + @Override public void run() { synchronized (us) @@ -1128,7 +1174,8 @@ class FeatureFetcher running++; } - af.setProgressBar(MessageManager.getString("status.das_features_being_retrived"), id); + af.setProgressBar(MessageManager + .getString("status.das_features_being_retrived"), id); af.featureSettings_actionPerformed(null); af.featureSettings.fetchDasFeatures(dasSources, true); af.setProgressBar(null, id); @@ -1145,4 +1192,4 @@ class FeatureFetcher return queued == 0 && running == 0; } -}; +}