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())
{