JAL-3878 Create web service class - container for service metadata and actions
[jalview.git] / src / jalview / bin / JalviewJSApp.java
index 1ba7273..feab4ae 100644 (file)
@@ -9,6 +9,8 @@ import java.util.List;
 import java.util.StringTokenizer;
 import java.util.Vector;
 
+import javax.swing.SwingUtilities;
+
 import jalview.api.JalviewJSApi;
 import jalview.api.StructureSelectionManagerProvider;
 import jalview.datamodel.Alignment;
@@ -153,13 +155,11 @@ public class JalviewJSApp implements JalviewJSApi
 
   }
 
-  public JalviewJSApp(Jalview jalview, ArgsParser aparser, AlignFrame alf)
+  public JalviewJSApp(Jalview jalview, ArgsParser aparser)
   {
     Platform.setAppClass(this);
     this.jalview = jalview;
     this.aparser = aparser;
-    initFromParams(alf);
-    callInitCallback();
   }
 
   @Override
@@ -1270,15 +1270,23 @@ public class JalviewJSApp implements JalviewJSApi
     Object initjscallback = getParameterAsObject("oninit");
     if (initjscallback != null)
     {
-      try
-      {
-        doSendCallback(initjscallback, new Object[0]);
-      } catch (Exception e)
-      {
-        System.err.println("Exception when executing _oninit callback '"
-                + initjscallback + "'.");
-        e.printStackTrace();
-      }
+      SwingUtilities.invokeLater(new Runnable() {
+
+        @Override
+        public void run()
+        {
+          try
+          {
+            doSendCallback(initjscallback, new Object[] {this});
+          } catch (Exception e)
+          {
+            System.err.println("Exception when executing _oninit callback '"
+                    + initjscallback + "'.");
+            e.printStackTrace();
+          }
+        }
+        
+      });
     }
   }
 
@@ -1328,7 +1336,7 @@ public class JalviewJSApp implements JalviewJSApi
    * 
    * @param alf
    */
-  private void initFromParams(AlignFrame alf)
+  void initFromParams(AlignFrame alf)
   {
     String sep = getParameter("separator");
     if (sep != null && sep.length() > 0)