canvas line/font/pixel fixes; menu accelerators;
[jalview.git] / src / jalview / bin / Jalview.java
index 3e6e545..4684f01 100755 (executable)
@@ -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 <br>
  * <br>
- * 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$
@@ -197,10 +210,40 @@ 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
    */
@@ -295,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);
     }
 
@@ -357,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);