JAL-1400 default JalviewLite build is signed applet with sandbox permissions
[jalview.git] / examples / 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)
4  * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
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 -->
19 <html xmlns="http://www.w3.org/1999/xhtml">
20 <head>
21   <head><title>Opening JalviewLite from Javascript</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 <!--//--><![CDATA[//><!--
83 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);})();
84 //--><!]]>
85 </head>
86
87
88 <body>
89
90
91 <div id="header">
92 <div id="logo"><a href="http://www.jalview.org" title="Home"></a></div>
93 <ul id="buttons">
94 <li id="applet"><a href="applets.html" title="applet"></a></li>
95 <li id="desktop"><a href="../webstart/jalview.jnlp" title="desktop"></a></li>
96 </ul>
97 </div>
98
99
100 <div id ="nav">
101 <div id="navInner">
102
103 <ul id="sddm">
104  <li><a href="http://www.jalview.org">Home</a></li>
105  <li><a href="http://www.jalview.org/about" onmouseover="mopen('m1')" onmouseout="mclosetime()">About</a>
106   <div id="m1" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
107   <a href="http://www.jalview.org/about/documentation">Documentation</a>
108   <a href="http://www.jalview.org/about/citation">Publications</a>
109   <a href="http://www.jalview.org/about/credits">Credits</a>
110   </div>
111  </li>
112  <li><a href="http://www.jalview.org/faq">FAQ</a></li>
113  <li><a href="http://www.jalview.org/community" onmouseover="mopen('m3')" onmouseout="mclosetime()" class="community">Community</a>
114   <div id="m3" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
115   <a href="http://www.jalview.org/mailman/listinfo/jalview-announce">News Mailing List</a>
116   <a href="http://www.jalview.org/mailman/listinfo/jalview-discuss">Discussion Mailing List</a>
117   <a href="http://www.jalview.org/community/links">Links</a>
118   <a href="http://www.jalview.org/community/community-news">Community News</a>
119   </div>
120  </li>
121  <li><a href="http://www.jalview.org/development" onmouseover="mopen('m4')" onmouseout="mclosetime()" class="development">Development</a>
122   <div id="m4" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
123   <a href="http://www.jalview.org/development/release-history">Release History</a>
124   <a href="http://issues.jalview.org">Jalview Bug Tracker</a>
125   <a href="http://source.jalview.org/gitweb/">Jalview Git Web</a>
126   <a href="http://www.jalview.org/development/development-news">Development News</a>
127   </div>
128  </li>
129  <li><a href="http://www.jalview.org/training" onmouseover="mopen('m5')" onmouseout="mclosetime()" class="training">Training</a>
130   <div id="m5" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
131   <a href="http://www.jalview.org/training/training-courses">Training Courses</a>
132   <a href="http://www.jalview.org/training/training-news">Training News</a>
133   </div>
134  </li>
135  <li><a href="http://www.jalview.org/download" class="download-right">Download</a></li>
136 </ul>
137 <div style="clear:both"></div>
138 </div>
139
140 </div>
141
142
143 <div id="pageWrap">
144
145 <div id="sideNav">
146 <ul>
147 <li><a href="applets.html">JalviewLite Examples</a></li>
148 <li><a href="appletParameters.html">Applet Parameters</a></li>
149 <li><a href="jalviewLiteJs.html">Javascript API</a><ul><li class="jvlite-nav-small"><a href="javascriptLaunch.html">JalviewLite Button</a></li></ul></li>
150 <li><a href="formComplete.html">in-page API demo</a></li>
151 <li><a href="linkedApplets_ng.html">Two JalviewLites demo</a></li>
152 <li><a href="embeddedWJmol.html">Jalview and Jmol demo</a></li>
153 </ul>
154 </div>
155
156 <div id="content" class="content"> 
157   <SCRIPT type="text/javascript">
158   /* <![CDATA[ // */
159 // From http://snipplr.com/view.php?codeview&id=1272
160 //----------------------------------------
161 //Wrapper function for constructing a request object.
162 //      Parameters:
163 //              reqType: The HTTP request type, such as GET or POST.
164 //              url: The URL of the server program.
165 //              asynch: Whether to send the request asynchronously or not.
166 //----------------------------------------
167
168 function httpRequest(reqType,url,asynch,respHandle) {
169
170         // Mozilla-based browsers
171         if (window.XMLHttpRequest) {
172                 request = new XMLHttpRequest();
173         } else if (window.ActiveXObject) {
174                 request = new ActiveXObject("Msxml2.XMLHTTP");
175                 if (!request) {
176                         request = new ActiveXObject("Microsoft.XMLHTTP");
177                 }
178         }
179         
180         // Request could still be null if neither ActiveXObject
181         //   initialization succeeded
182         if (request) {
183                 // If the reqType param is POST, then the fifth arg is the POSTed data
184                 if (reqType.toLowerCase() != "post") {
185                         initReq(reqType, url, asynch, respHandle);
186                 } else {
187                         // The POSTed data
188                         var args = arguments[5];
189                         if (args != null && args.length > 0) {
190                                 initReq(reqType, url, asynch, respHandle, args);
191                         }
192                 }
193         } else {
194                 alert("Your browser does not permit the use of all " +
195                         "of this application's features!");
196         }
197
198 }
199
200 //----------------------------------------
201 //Initialize a request object that is already constructed
202 //----------------------------------------
203
204 function initReq(reqType, url, bool, respHandle) {
205         try {
206                 // Specify the function that will handle the HTTP response
207                 request.onreadystatechange = respHandle;
208                 request.open(reqType, url, bool);
209                 // If the reqType param is POST, then the
210                 //   fifth argument to the function is the POSTed data
211                 if (reqType.toLowerCase() == "post") {
212                         // Set the Content-Type header for a POST request
213                         request.setRequestHeader("Content-Type", "application/x-ww-form-urlencoded; charset=UTF-8");
214                         request.send(arguments[4]);
215                 } else {
216                         request.send(null);
217                 }
218         } catch (errv) {
219                 alert("The application cannot contact the server at the moment. " +
220                         "Please try again in a few seconds.\n" +
221                         "Error detail: " + errv.message);
222         }
223 }
224
225 // jalview launching with fetched data
226
227 function startJalview(aligURL,title,alwvar) {
228                 var aligment = "";
229                 httpRequest("get",aligURL,true,function() {
230                                 if (request.readyState == 4) { 
231                                         alignment = request.responseText; 
232                                         eval("var "+alwvar+" = document.JalviewLite.loadAlignment(alignment,title)");
233                                 }
234                 })
235                 
236 }
237
238 /* ]]> */
239 </SCRIPT>
240   <form name="Form1">
241 <applet name="JalviewLite"  code="jalview.bin.JalviewLite"
242 archive="jalviewApplet.jar" width="0" height="0">
243 <param name="debug" value="true"/>
244 <param name="showbutton" value="false"/>
245 <param name="permissions" value="sandbox"/>
246 </applet>
247
248
249   <input type="button" name="Button1" value="Start"
250 onClick="startJalview('plantfdx.fa','Button1.alignment','alwvar')"/>
251   </form>
252   
253
254 </div>
255 </div>
256 <div id ="footer">
257 <div id="innerFooter">
258 <div id="copyright"><p>Published under <a href="http://creativecommons.org/licenses/by-sa/3.0/">CC-SA 3.0</a></p></div>
259 <div id="cite">
260 <p>
261 If you use Jalview in your work, please cite this publication:
262 </p>
263 <br />
264 <p>
265 Waterhouse, A.M., Procter, J.B., Martin, D.M.A, Clamp, M. and Barton, G. J. (2009)
266 "Jalview Version 2 - a multiple sequence alignment editor and analysis workbench"
267 Bioinformatics 25 (9) 1189-1191 <a href="http://dx.doi.org/10.1093/bioinformatics/btp033">doi: 10.1093/bioinformatics/btp033</a>
268 </p>
269 </div>
270 </div>
271 </div>
272 </body>
273 </head>
274 </html>