JAL-1551 formatting
[jalview.git] / examples / u_javascriptLaunch.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2 <!--
3  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
4  * Copyright (C) 2014 The Jalview Authors
5  * 
6  * This file is part of Jalview.
7  * 
8  * Jalview is free software: you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License 
10  * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
11  *  
12  * Jalview is distributed in the hope that it will be useful, but 
13  * WITHOUT ANY WARRANTY; without even the implied warranty 
14  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
15  * PURPOSE.  See the GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
18  * The Jalview Authors are detailed in the 'AUTHORS' file.
19 -->
20 <head>
21   <TITLE>Javascript Launch</TITLE>
22   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
23
24   <link href="css/reset.css" rel="stylesheet" type="text/css" />
25   <link href="css/style.css" rel="stylesheet" type="text/css" />
26   
27   <!--[if IE 6]>
28       <link rel="stylesheet" type="text/css" href="css/ie6.css" />
29       <![endif]-->
30
31   <!--[if IE 7]>
32       <link rel="stylesheet" type="text/css" href="css/ie7.css" />
33       <![endif]-->
34
35   <!-- dd menu -->
36   <script type="text/javascript">
37     <!--
38         var timeout         = 500;
39         var closetimer  = 0;
40         var ddmenuitem      = 0;
41
42         // open hidden layer
43         function mopen(id)
44         { 
45         // cancel close timer
46         mcancelclosetime();
47
48         // close old layer
49         if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
50
51         // get new layer and show it
52         ddmenuitem = document.getElementById(id);
53         ddmenuitem.style.visibility = 'visible';
54
55         }
56         // close showed layer
57         function mclose()
58         {
59         if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
60         }
61
62         // go close timer
63         function mclosetime()
64         {
65         closetimer = window.setTimeout(mclose, timeout);
66         }
67
68         // cancel close timer
69         function mcancelclosetime()
70         {
71         if(closetimer)
72         {
73         window.clearTimeout(closetimer);
74         closetimer = null;
75         }
76         }
77
78         // close layer when click-out
79         document.onclick = mclose; 
80         // -->
81   </script>
82   <script>
83     <!--//--><![CDATA[//><!--
84 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);})();
85 //--><!]]>
86   </script>
87
88 </head>
89
90
91 <body>
92
93
94   <div id="header">
95     <div id="logo"><a href="http://www.jalview.org" title="Home"></a></div>
96     <ul id="buttons">
97       <li id="applet"><a href="applets.html" title="applet"></a></li>
98       <li id="desktop"><a href="../webstart/jalview.jnlp" title="desktop"></a></li>
99     </ul>
100   </div>
101
102   
103   <div id ="nav">
104     <div id="navInner">
105
106       <ul id="sddm">
107         <li><a href="http://www.jalview.org">Home</a></li>
108         <li><a href="http://www.jalview.org/about" onmouseover="mopen('m1')" onmouseout="mclosetime()">About</a>
109           <div id="m1" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
110             <a href="http://www.jalview.org/about/documentation">Documentation</a>
111             <a href="http://www.jalview.org/about/citation">Publications</a>
112             <a href="http://www.jalview.org/about/credits">Credits</a>
113           </div>
114         </li>
115         <li><a href="http://www.jalview.org/faq">FAQ</a></li>
116         <li><a href="http://www.jalview.org/community" onmouseover="mopen('m3')" onmouseout="mclosetime()" class="community">Community</a>
117           <div id="m3" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
118             <a href="http://www.jalview.org/mailman/listinfo/jalview-announce">News Mailing List</a>
119             <a href="http://www.jalview.org/mailman/listinfo/jalview-discuss">Discussion Mailing List</a>
120             <a href="http://www.jalview.org/community/links">Links</a>
121             <a href="http://www.jalview.org/community/community-news">Community News</a>
122           </div>
123         </li>
124         <li><a href="http://www.jalview.org/development" onmouseover="mopen('m4')" onmouseout="mclosetime()" class="development">Development</a>
125           <div id="m4" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
126             <a href="http://www.jalview.org/development/release-history">Release History</a>
127             <a href="http://issues.jalview.org">Jalview Bug Tracker</a>
128             <a href="http://source.jalview.org/gitweb/">Jalview Git Web</a>
129             <a href="http://www.jalview.org/development/development-news">Development News</a>
130           </div>
131         </li>
132         <li><a href="http://www.jalview.org/training" onmouseover="mopen('m5')" onmouseout="mclosetime()" class="training">Training</a>
133           <div id="m5" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
134             <a href="http://www.jalview.org/training/training-courses">Training Courses</a>
135             <a href="http://www.jalview.org/training/training-news">Training News</a>
136           </div>
137         </li>
138         <li><a href="http://www.jalview.org/download" class="download-right">Download</a></li>
139       </ul>
140       <div style="clear:both"></div>
141     </div>
142
143   </div>
144 <div id="pageWrap">
145
146 <div id="sideNav">
147   <ul>
148       <li ><a href="u_applets.html">JalviewLite Examples</a></li>
149       <li ><a href="jalviewLiteJs.html">Javascript API</a></li>
150       <li ><a href="appletParameters.html">Applet Parameters</a></li>
151       <li ><a href="u_embedded.html">Embedded Alignment</a></li>
152       <li ><a href="u_embeddedWJmol.html">Jalview and Jmol</a></li>
153       <li ><a href="u_formComplete.html">Access from Javascript</a></li>
154       <li class="jvlite-nav-small"><a href="u_javascriptLaunch.html">Javascript Launch</a></li>
155       <li ><a href="u_linkedapplets_ng.html">Linked JalviewLites</a></li>
156   </ul>
157 </div>
158
159 <div id="content" class="content">
160
161
162 <!-- boiler plate link to alternate demopage -->
163
164 <div style="width: 100%">
165 <div style="width:35%; align:left; float:right;">
166 <div style="margin:8px; padding:8px; border: 2px solid black; align: center; float:center;">
167  Scary Java warnings ?<br/>Try <a href="javascriptLaunch.html">the signed applet demos</a>
168 </div>
169 <div style="margin:8px; padding:10px; align: left;">
170 <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>
171 </p></div>
172 </div>
173 </div>
174
175 <!-- content template start -->
176   <SCRIPT type="text/javascript">
177   /* <![CDATA[ // */
178 // From http://snipplr.com/view.php?codeview&id=1272
179 //----------------------------------------
180 //Wrapper function for constructing a request object.
181 //      Parameters:
182 //              reqType: The HTTP request type, such as GET or POST.
183 //              url: The URL of the server program.
184 //              asynch: Whether to send the request asynchronously or not.
185 //----------------------------------------
186
187 function httpRequest(reqType,url,asynch,respHandle) {
188
189         // Mozilla-based browsers
190         if (window.XMLHttpRequest) {
191                 request = new XMLHttpRequest();
192         } else if (window.ActiveXObject) {
193                 request = new ActiveXObject("Msxml2.XMLHTTP");
194                 if (!request) {
195                         request = new ActiveXObject("Microsoft.XMLHTTP");
196                 }
197         }
198         
199         // Request could still be null if neither ActiveXObject
200         //   initialization succeeded
201         if (request) {
202                 // If the reqType param is POST, then the fifth arg is the POSTed data
203                 if (reqType.toLowerCase() != "post") {
204                         initReq(reqType, url, asynch, respHandle);
205                 } else {
206                         // The POSTed data
207                         var args = arguments[5];
208                         if (args != null && args.length > 0) {
209                                 initReq(reqType, url, asynch, respHandle, args);
210                         }
211                 }
212         } else {
213                 alert("Your browser does not permit the use of all " +
214                         "of this application's features!");
215         }
216
217 }
218
219 //----------------------------------------
220 //Initialize a request object that is already constructed
221 //----------------------------------------
222
223 function initReq(reqType, url, bool, respHandle) {
224         try {
225                 // Specify the function that will handle the HTTP response
226                 request.onreadystatechange = respHandle;
227                 request.open(reqType, url, bool);
228                 // If the reqType param is POST, then the
229                 //   fifth argument to the function is the POSTed data
230                 if (reqType.toLowerCase() == "post") {
231                         // Set the Content-Type header for a POST request
232                         request.setRequestHeader("Content-Type", "application/x-ww-form-urlencoded; charset=UTF-8");
233                         request.send(arguments[4]);
234                 } else {
235                         request.send(null);
236                 }
237         } catch (errv) {
238                 alert("The application cannot contact the server at the moment. " +
239                         "Please try again in a few seconds.\n" +
240                         "Error detail: " + errv.message);
241         }
242 }
243
244 // jalview launching with fetched data
245
246 function startJalview(aligURL,title,alwvar) {
247                 var aligment = "";
248                 httpRequest("get",aligURL,true,function() {
249                                 if (request.readyState == 4) { 
250                                         alignment = request.responseText; 
251                                         eval("var "+alwvar+" = document.JalviewLite.loadAlignment(alignment,title)");
252                                 }
253                 })
254                 
255 }
256
257 /* ]]> */
258 </SCRIPT>
259   <form name="Form1">
260 <applet name="JalviewLite"  code="jalview.bin.JalviewLite"
261 archive="u_jalviewApplet.jar" width="0" height="0">
262 <param name="debug" value="true"/>
263 <param name="showbutton" value="false"/>
264 </applet>
265
266 <h2>Javascript Launch Button</h2><p>The button below demonstrates how JalviewLite can be launched via a javascript action.</p>
267
268   <input type="button" name="Button1" value="Start"
269 onClick="startJalview('plantfdx.fa','Button1.alignment','alwvar')"/>
270   </form>
271 <!-- content template end -->
272
273
274
275 </div> <!-- end content div -->
276
277 </div> <!-- content -->
278 </div> <!-- pagewrap -->
279 <div id ="footer">
280 <div id="innerFooter">
281 <div id="copyright"><p>Published under <a href="http://creativecommons.org/licenses/by-sa/3.0/">CC-SA 3.0</a></p></div>
282 <div id="cite">
283 <p>
284 If you use Jalview in your work, please cite this publication:
285 </p>
286 <br />
287 <p>
288 Waterhouse, A.M., Procter, J.B., Martin, D.M.A, Clamp, M. and Barton, G. J. (2009)
289 "Jalview Version 2 - a multiple sequence alignment editor and analysis workbench"
290 Bioinformatics 25 (9) 1189-1191 <a href="http://dx.doi.org/10.1093/bioinformatics/btp033">doi: 10.1093/bioinformatics/btp033</a>
291 </p>
292 </div>
293 </div>
294 </div>
295 </body>
296 </html>