Jalview-JS/JAL-3253-applet more argument parsing
[jalview.git] / site-resources / swingjs / JalviewApplet.js
index 601b1c4..872f8a0 100644 (file)
@@ -12,7 +12,7 @@ $(document).ready(function() {
 
  
 Jalview.processAllAppletElements = function(PageInfo) {
-       var applets = document.getElementsByTagName("applet");
+       var applets = document.getElementsByTagName("applet") || document.getElementsByTagName("jvapplet");
        var apps=[];
        for (var i = 0; i < applets.length; i++)
                apps[i] = applets[i];
@@ -23,9 +23,21 @@ Jalview.processAllAppletElements = function(PageInfo) {
  
 Jalview.processAppletElement = function(element, UserInfo) {
        
+       // This code is specifically for processing the <applet> or <jvapplet> tag.
+       
+       // To set Jalview application tags, use Info.args="......."
+
+       // To set preferences, use "jalview_" prefix with all-upper-case names:
+
+       //Info.jalview_SCREEN_X= 10,Info.jalview_SCREEN_Y= 10;
+       //Info.jalview_EMBEDDED= true;
+       //Info.jalview_SCREEN_WIDTH = 400;
+       //Info.jalview_SCREEN_HEIGHT = 100;
+       
+var text = element.outerHTML;
 var code = element.getAttribute("code");
 var parent = element.parentElement;
-if (code != "jalview.bin.JalviewLite") {
+if (code != "jalview.bin.JalviewLite" && text.indexOf("<applet") == 0) {
        return;
 }
 
@@ -45,45 +57,39 @@ if (code != "jalview.bin.JalviewLite") {
        allowjavascript: true
        }
 
-var text = element.outerHTML;
-var args = Info.args = text.replace(/[\n\t]/g, " ").split("<param ");
+       var args = Info.args = text.replace(/[\n\t]/g, " ").replace("<jvapplet","<applet").split("<param ");
 
-// overwrite default parameters with UserInfo (global JalviewInfo):
+       // overwrite default parameters with UserInfo (global JalviewInfo):
  
        if (UserInfo) {
-for (var i in UserInfo) {
-       Info[i] = UserInfo[i];
-}
+               for (var i in UserInfo) {
+                       Info[i] = UserInfo[i];
+               }
        }
 
-// generate name/value pairs for parameters in Applet tag
+       // generate name/value pairs for parameters in Applet tag
 
        Info.j2sAppletID = Info.j2sAppletID 
                || element.getAttribute("name") 
                || element.getAttribute("id") 
                || Info.idPrefix.replace(/%ID%/g, "jalview" + ++Jalview.jvid);
        
-//Info.jalview_SCREEN_X= 10,Info.jalview_SCREEN_Y= 10;
-//Info.jalview_EMBEDDED= true;
-//Info.jalview_SCREEN_WIDTH = 400;
-//Info.jalview_SCREEN_HEIGHT = 100;
-
        
-var addParam = function(key,value) {
-       args.push("name=\"" + key + "\" value=\"" + value + "\""); 
-}
-
-
-for (var i in Info) {
-       var v = ("" + Info[i] || "null").replace(/\"/g,"'");
-       addParam("Info." + i, v);
-}
+       var addParam = function(key,value) {
+               args.push("name=\"" + key + "\" value=\"" + value + "\""); 
+       }
        
        
-
+       for (var i in Info) {
+               var v = ("" + Info[i] || "null").replace(/\"/g,"'");
+               addParam("Info." + i, v);
+       }
+               
+               
+       
        element.JalviewInfo = Info;
        var btn = document.createElement("button");
-btn.appletElement = element;
+       btn.appletElement = element;
        var a = element.getAttribute("width");
        btn.style.width = (a || 140) + "px";
        a = element.getAttribute("height");
@@ -91,12 +97,12 @@ btn.appletElement = element;
        btn.jvparent = parent;
        if (Info.startButton) {
                btn.innerHTML = Info.startButton;
-parent.replaceChild(btn, element); 
-$(btn).click(Jalview.doStartJalview);
-} else {
-       parent.removeElement(element);
-       Jalview.doStartJalview({target:btn});
-}
+               parent.replaceChild(btn, element); 
+               $(btn).click(Jalview.doStartJalview);
+       } else {
+               parent.removeElement(element);
+               Jalview.doStartJalview({target:btn});
+       }
 }