Merge branch 'JAL-957_jbake' into r281_JAL-957
[jalview.git] / examples / u_javascriptLaunch.html
diff --git a/examples/u_javascriptLaunch.html b/examples/u_javascriptLaunch.html
new file mode 100644 (file)
index 0000000..9ea3a5a
--- /dev/null
@@ -0,0 +1,295 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!--
+    * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
+    * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
+    * 
+    * This file is part of Jalview.
+    * 
+    * Jalview is free software: you can redistribute it and/or
+    * modify it under the terms of the GNU General Public License 
+    * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+    *  
+    * Jalview is distributed in the hope that it will be useful, but 
+    * WITHOUT ANY WARRANTY; without even the implied warranty 
+    * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+    * PURPOSE.  See the GNU General Public License for more details.
+    * 
+    * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+  -->
+<head>
+  <TITLE>Javascript Launch</TITLE>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
+
+  <link href="css/reset.css" rel="stylesheet" type="text/css" />
+  <link href="css/style.css" rel="stylesheet" type="text/css" />
+  
+  <!--[if IE 6]>
+      <link rel="stylesheet" type="text/css" href="css/ie6.css" />
+      <![endif]-->
+
+  <!--[if IE 7]>
+      <link rel="stylesheet" type="text/css" href="css/ie7.css" />
+      <![endif]-->
+
+  <!-- dd menu -->
+  <script type="text/javascript">
+    <!--
+       var timeout         = 500;
+       var closetimer  = 0;
+       var ddmenuitem      = 0;
+
+       // open hidden layer
+       function mopen(id)
+       { 
+       // cancel close timer
+       mcancelclosetime();
+
+       // close old layer
+       if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
+
+       // get new layer and show it
+       ddmenuitem = document.getElementById(id);
+       ddmenuitem.style.visibility = 'visible';
+
+       }
+       // close showed layer
+       function mclose()
+       {
+       if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
+       }
+
+       // go close timer
+       function mclosetime()
+       {
+       closetimer = window.setTimeout(mclose, timeout);
+       }
+
+       // cancel close timer
+       function mcancelclosetime()
+       {
+       if(closetimer)
+       {
+       window.clearTimeout(closetimer);
+       closetimer = null;
+       }
+       }
+
+       // close layer when click-out
+       document.onclick = mclose; 
+       // -->
+  </script>
+  <script>
+    <!--//--><![CDATA[//><!--
+var _gaq = _gaq || [];_gaq.push(["_setAccount", "UA-9060947-1"]);_gaq.push(["_trackPageview"]);(function() {var ga = document.createElement("script");ga.type = "text/javascript";ga.async = true;ga.src = ("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js";var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(ga, s);})();
+//--><!]]>
+  </script>
+
+</head>
+
+
+<body>
+
+
+  <div id="header">
+    <div id="logo"><a href="http://www.jalview.org" title="Home"></a></div>
+    <ul id="buttons">
+      <li id="applet"><a href="applets.html" title="applet"></a></li>
+      <li id="desktop"><a href="../webstart/jalview.jnlp" title="desktop"></a></li>
+    </ul>
+  </div>
+
+  
+  <div id ="nav">
+    <div id="navInner">
+
+      <ul id="sddm">
+       <li><a href="http://www.jalview.org">Home</a></li>
+       <li><a href="http://www.jalview.org/about" onmouseover="mopen('m1')" onmouseout="mclosetime()">About</a>
+         <div id="m1" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
+           <a href="http://www.jalview.org/about/documentation">Documentation</a>
+           <a href="http://www.jalview.org/about/citation">Publications</a>
+           <a href="http://www.jalview.org/about/credits">Credits</a>
+         </div>
+       </li>
+       <li><a href="http://www.jalview.org/faq">FAQ</a></li>
+       <li><a href="http://www.jalview.org/community" onmouseover="mopen('m3')" onmouseout="mclosetime()" class="community">Community</a>
+         <div id="m3" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
+           <a href="http://www.jalview.org/mailman/listinfo/jalview-announce">News Mailing List</a>
+           <a href="http://www.jalview.org/mailman/listinfo/jalview-discuss">Discussion Mailing List</a>
+           <a href="http://www.jalview.org/community/links">Links</a>
+           <a href="http://www.jalview.org/community/community-news">Community News</a>
+         </div>
+       </li>
+       <li><a href="http://www.jalview.org/development" onmouseover="mopen('m4')" onmouseout="mclosetime()" class="development">Development</a>
+         <div id="m4" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
+           <a href="http://www.jalview.org/development/release-history">Release History</a>
+           <a href="http://issues.jalview.org">Jalview Bug Tracker</a>
+           <a href="http://source.jalview.org/gitweb/">Jalview Git Web</a>
+           <a href="http://www.jalview.org/development/development-news">Development News</a>
+         </div>
+       </li>
+       <li><a href="http://www.jalview.org/training" onmouseover="mopen('m5')" onmouseout="mclosetime()" class="training">Training</a>
+         <div id="m5" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
+           <a href="http://www.jalview.org/training/training-courses">Training Courses</a>
+           <a href="http://www.jalview.org/training/training-news">Training News</a>
+         </div>
+       </li>
+       <li><a href="http://www.jalview.org/download" class="download-right">Download</a></li>
+      </ul>
+      <div style="clear:both"></div>
+    </div>
+
+  </div>
+<div id="pageWrap">
+
+<div id="sideNav">
+  <ul>
+      <li ><a href="u_applets.html">JalviewLite Examples</a></li>
+      <li ><a href="jalviewLiteJs.html">Javascript API</a></li>
+      <li ><a href="appletParameters.html">Applet Parameters</a></li>
+      <li ><a href="u_embedded.html">Embedded Alignment</a></li>
+      <li ><a href="u_embeddedWJmol.html">Jalview and Jmol</a></li>
+      <li ><a href="u_formComplete.html">Access from Javascript</a></li>
+      <li class="jvlite-nav-small"><a href="u_javascriptLaunch.html">Javascript Launch</a></li>
+      <li ><a href="u_linkedapplets_ng.html">Linked JalviewLites</a></li>
+  </ul>
+</div>
+
+<div id="content" class="content">
+
+
+<!-- boiler plate link to alternate demopage -->
+
+<div style="width: 100%">
+<div style="width:35%; align:left; float:right;">
+<div style="margin:8px; padding:8px; border: 2px solid black; align: center; float:center;">
+ Scary Java warnings ?<br/>Try <a href="javascriptLaunch.html">the signed applet demos</a>
+</div>
+<div style="margin:8px; padding:10px; align: left;">
+<p>Quick Links to jars for example:<br/><a href="u_jalviewApplet.jar">jalviewApplet.jar</a> and <a href="u_JmolApplet-12.2.4.jar">JmolApplet.jar</a>
+</p></div>
+</div>
+</div>
+
+<!-- content template start -->
+  <SCRIPT type="text/javascript">
+  /* <![CDATA[ // */
+// From http://snipplr.com/view.php?codeview&id=1272
+//----------------------------------------
+//Wrapper function for constructing a request object.
+//     Parameters:
+//             reqType: The HTTP request type, such as GET or POST.
+//             url: The URL of the server program.
+//             asynch: Whether to send the request asynchronously or not.
+//----------------------------------------
+
+function httpRequest(reqType,url,asynch,respHandle) {
+
+       // Mozilla-based browsers
+       if (window.XMLHttpRequest) {
+               request = new XMLHttpRequest();
+       } else if (window.ActiveXObject) {
+               request = new ActiveXObject("Msxml2.XMLHTTP");
+               if (!request) {
+                       request = new ActiveXObject("Microsoft.XMLHTTP");
+               }
+       }
+       
+       // Request could still be null if neither ActiveXObject
+       //   initialization succeeded
+       if (request) {
+               // If the reqType param is POST, then the fifth arg is the POSTed data
+               if (reqType.toLowerCase() != "post") {
+                       initReq(reqType, url, asynch, respHandle);
+               } else {
+                       // The POSTed data
+                       var args = arguments[5];
+                       if (args != null && args.length > 0) {
+                               initReq(reqType, url, asynch, respHandle, args);
+                       }
+               }
+       } else {
+               alert("Your browser does not permit the use of all " +
+                       "of this application's features!");
+       }
+
+}
+
+//----------------------------------------
+//Initialize a request object that is already constructed
+//----------------------------------------
+
+function initReq(reqType, url, bool, respHandle) {
+       try {
+               // Specify the function that will handle the HTTP response
+               request.onreadystatechange = respHandle;
+               request.open(reqType, url, bool);
+               // If the reqType param is POST, then the
+               //   fifth argument to the function is the POSTed data
+               if (reqType.toLowerCase() == "post") {
+                       // Set the Content-Type header for a POST request
+                       request.setRequestHeader("Content-Type", "application/x-ww-form-urlencoded; charset=UTF-8");
+                       request.send(arguments[4]);
+               } else {
+                       request.send(null);
+               }
+       } catch (errv) {
+               alert("The application cannot contact the server at the moment. " +
+                       "Please try again in a few seconds.\n" +
+                       "Error detail: " + errv.message);
+       }
+}
+
+// jalview launching with fetched data
+
+function startJalview(aligURL,title,alwvar) {
+               var aligment = "";
+               httpRequest("get",aligURL,true,function() {
+                               if (request.readyState == 4) { 
+                                       alignment = request.responseText; 
+                                       eval("var "+alwvar+" = document.JalviewLite.loadAlignment(alignment,title)");
+                               }
+               })
+               
+}
+
+/* ]]> */
+</SCRIPT>
+  <form name="Form1">
+<applet name="JalviewLite"  code="jalview.bin.JalviewLite"
+archive="u_jalviewApplet.jar" width="0" height="0">
+<param name="debug" value="true"/>
+<param name="showbutton" value="false"/>
+</applet>
+
+<h2>Javascript Launch Button</h2><p>The button below demonstrates how JalviewLite can be launched via a javascript action.</p>
+
+  <input type="button" name="Button1" value="Start"
+onClick="startJalview('plantfdx.fa','Button1.alignment','alwvar')"/>
+  </form>
+<!-- content template end -->
+
+
+
+</div> <!-- end content div -->
+
+</div> <!-- content -->
+</div> <!-- pagewrap -->
+<div id ="footer">
+<div id="innerFooter">
+<div id="copyright"><p>Published under <a href="http://creativecommons.org/licenses/by-sa/3.0/">CC-SA 3.0</a></p></div>
+<div id="cite">
+<p>
+If you use Jalview in your work, please cite this publication:
+</p>
+<br />
+<p>
+Waterhouse, A.M., Procter, J.B., Martin, D.M.A, Clamp, M. and Barton, G. J. (2009)
+"Jalview Version 2 - a multiple sequence alignment editor and analysis workbench"
+Bioinformatics 25 (9) 1189-1191 <a href="http://dx.doi.org/10.1093/bioinformatics/btp033">doi: 10.1093/bioinformatics/btp033</a>
+</p>
+</div>
+</div>
+</div>
+</body>
+</html>