X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FJalview.java;h=474c7075e25b22131eff84603055e4272a54a5f2;hb=f5d6c0018555b2c453c2c0354c84cd5d2d81e3b9;hp=e890cb85bd00a5cfc35c166152a4b05c74b92004;hpb=2cbf9d005db462396fa1dc0750aa63a2e6cd0735;p=jalview.git diff --git a/src/jalview/bin/Jalview.java b/src/jalview/bin/Jalview.java index e890cb8..474c707 100755 --- a/src/jalview/bin/Jalview.java +++ b/src/jalview/bin/Jalview.java @@ -41,6 +41,8 @@ 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; import java.io.File; import java.io.FileOutputStream; @@ -60,8 +62,12 @@ import java.security.Policy; import java.util.HashMap; import java.util.Map; import java.util.Vector; +import java.util.logging.ConsoleHandler; +import java.util.logging.Level; +import java.util.logging.Logger; import javax.swing.LookAndFeel; +import javax.swing.Timer; import javax.swing.UIManager; import groovy.lang.Binding; @@ -70,7 +76,14 @@ 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$ @@ -89,13 +102,21 @@ public class Jalview public static AlignFrame currentAlignFrame; - public static boolean isJS = /** @j2sNative true || */ // BH 2018 - false; + /** + * Answers true if Jalview is running as Javascript, else false. The value is + * set at compile time. + * + * @return + */ + public static boolean isJS() + { + return /** @j2sNative true || */ + false; + } static { - - if (!isJS) + if (!isJS()) { // BH 2018 // grab all the rights we can the JVM Policy.setPolicy(new Policy() @@ -189,17 +210,47 @@ public class Jalview */ public static void main(String[] args) { +// setLogging(); // BH - for event debugging in JavaScript instance = new Jalview(); instance.doMain(args); +} + + private static void logClass(String name) + { + // BH - for event debugging in JavaScript + ConsoleHandler consoleHandler = new ConsoleHandler(); + consoleHandler.setLevel(Level.ALL); + Logger logger = Logger.getLogger(name); + logger.setLevel(Level.ALL); + logger.addHandler(consoleHandler); } + @SuppressWarnings("unused") + private static void setLogging() + { + // BH - for event debugging in JavaScript (Java mode only) + if (!(/** @j2sNative true ||*/false)) + { + Logger.getLogger("").setLevel(Level.ALL); + logClass("java.awt.EventDispatchThread"); + logClass("java.awt.EventQueue"); + logClass("java.awt.Component"); + logClass("java.awt.focus.Component"); + logClass("java.awt.focus.DefaultKeyboardFocusManager"); + } + + } + + + + /** * @param args */ void doMain(String[] args) { - if (!isJS) + if (!isJS()) { System.setSecurityManager(null); } @@ -287,7 +338,7 @@ public class Jalview { error.printStackTrace(); System.out.println("\nEssential logging libraries not found." - + "\nUse: java -Djava.ext.dirs=$PATH_TO_LIB$ jalview.bin.Jalview"); + + "\nUse: java -classpath \"$PATH_TO_LIB$/*:$PATH_TO_CLASSES$\" jalview.bin.Jalview"); System.exit(0); } @@ -301,7 +352,7 @@ public class Jalview System.err.println("Unexpected Look and Feel Exception"); ex.printStackTrace(); } - if (Platform.isAMac()) + if (Platform.isAMacAndNotJS()) { LookAndFeel lookAndFeel = ch.randelshofer.quaqua.QuaquaManager @@ -349,7 +400,16 @@ public class Jalview if (!headless) { - desktop = new Desktop(); + desktop = new Desktop() +// { +// // BH testing +// @Override +// protected void processEvent(AWTEvent e) { +// System.out.println("Jalview.java " + e); +// super.processEvent(e); +// } +// } + ; desktop.setInBatchMode(true); // indicate we are starting up desktop.setVisible(true); @@ -530,7 +590,7 @@ public class Jalview } System.out.println("CMD [-open " + file + "] executed successfully!"); - if (!isJS && !file.startsWith("http://")) + if (!isJS() && !file.startsWith("http://")) { if (!(new File(file)).exists()) {