Update to Worldwind release 20070920
[worldwind-tracker.git] / applet / index_applet_cookie.html
blob9303fdc83d385c46aa531e2ff2dd0a9707326c2e
1 <html>
2 <head>
3 <title>NASA World Wind Java Applet Test Page - Javascript saved locations with a cookie</title>
5 <script language="javascript">
6 <!--
7 // Author: Patrick Murris
8 // Version:
10 // Applet init, start and stop - called from java at the end of applet init() and start()
11 // and at the begining of stop()
13 function appletInit() {
16 function appletStart() {
17 // Fly to first location in the list after a delay
18 var locations = document.controlPanel.locations;
19 if(locations.options.length > 0)
20 setTimeout("goto(document.controlPanel.locations.options[0].value)", 5000); // 5 seconds
23 function appletStop() {
26 // Locations select options handling
28 function goto(locationString) {
29 var params = locationString.split(';');
30 if(params.length == 3) // Lat/lon
31 document.getElementById('wwjApplet').getSubApplet().gotoLatLon(parseFloat(params[1]), parseFloat(params[2]));
32 else if(params.length == 4) // Lat/lon and zoom
33 document.getElementById('wwjApplet').getSubApplet().gotoLatLon(parseFloat(params[1]), parseFloat(params[2]), parseFloat(params[3]), 0, 0);
34 else if(params.length == 5) // Lat/lon/zoom and heading
35 document.getElementById('wwjApplet').getSubApplet().gotoLatLon(parseFloat(params[1]), parseFloat(params[2]), parseFloat(params[3]), parseFloat(params[4]), 0);
36 else if(params.length == 6) // Lat/lon/zoom/heading and pitch
37 document.getElementById('wwjApplet').getSubApplet().gotoLatLon(parseFloat(params[1]), parseFloat(params[2]), parseFloat(params[3]), parseFloat(params[4]), parseFloat(params[5]));
40 function addLocation() {
41 var ww = document.getElementById('wwjApplet');
42 // Read view states from ww applet
43 var lat = ww.getSubApplet().getOrbitView().getLookAtLatitude().degrees;
44 var lon = ww.getSubApplet().getOrbitView().getLookAtLongitude().degrees;
45 var zoom = ww.getSubApplet().getOrbitView().getZoom();
46 var head = ww.getSubApplet().getOrbitView().getHeading().degrees;
47 var pitch = ww.getSubApplet().getOrbitView().getPitch().degrees;
48 var name = prompt("Location name :", "New location");
49 if(name != null) {
50 var locationString = name + ';' + lat + ';' + lon + ';' + zoom + ';' + head + ';' + pitch;
51 document.controlPanel.locations.options[document.controlPanel.locations.options.length] = new Option(name,locationString);
52 saveLocations();
56 function removeLocation(i) {
57 if(i >= 0 && i < document.controlPanel.locations.options.length) {
58 document.controlPanel.locations.options[i] = null;
59 saveLocations();
63 function moveLocation(i, delta) {
64 if(i == -1) return;
65 if( i + delta >= 0 && i + delta < document.controlPanel.locations.options.length) {
66 var locations = document.controlPanel.locations;
67 var temp = new Option(locations.options[i].text, locations.options[i].value);
68 locations.options[i] = new Option(locations.options[i + delta].text, locations.options[i + delta].value);
69 locations.options[i + delta] = temp;
70 locations.selectedIndex = i + delta;
71 saveLocations();
75 function saveLocations() {
76 var value = '';
77 var locations = document.controlPanel.locations;
78 for(var i = 0; i < locations.options.length; i++) {
79 value += locations.options[i].value + '|';
81 if(value.length > 0) value = value.substring(0, value.length - 1);
82 setCookie('NASA_WWJ_Locations', value, 999);
85 function loadLocations() {
86 var value = getCookie('NASA_WWJ_Locations');
87 if(value != '') {
88 var locationList = value.split('|');
89 var locations = document.controlPanel.locations;
90 locations.options.length = 0;
91 for(var i = 0; i < locationList.length; i++) {
92 var name = locationList[i].split(';')[0];
93 locations.options[i] = new Option(name, locationList[i]);
98 // Cookies
100 function setCookie(name, value, days) {
101 if(value != "") {
102 var date1 = new Date();
103 var date2 = new Date();
104 date2.setTime(date1.getTime() + 1000*60*60*24*days);
105 document.cookie = name + '=' + escape(value) + '; expires=' + date2.toGMTString();
109 function getCookie(name) {
110 var gato = document.cookie;
111 i1 = gato.indexOf(name+'=');
112 if(i1 == -1) return "";
113 i2 = gato.indexOf(';', i1);
114 if(i2 == -1) i2 = gato.length;
115 return unescape(gato.substring(i1 + name.length + 1, i2))
119 // -->
120 </script>
121 </head>
123 <body onLoad="loadLocations()">
125 <applet id="wwjApplet" name="wwjApplet" mayscript code="org.jdesktop.applet.util.JNLPAppletLauncher" width=100% height=70%
126 archive="applet-launcher.jar,http://download.java.net/media/jogl/builds/archive/jsr-231-webstart-current/jogl.jar, http://download.java.net/media/gluegen/webstart/gluegen-rt.jar, worldwind.jar">
127 <param name="codebase_lookup" value="false">
128 <param name="subapplet.classname" value="applet.WWJApplet">
129 <param name="subapplet.displayname" value="WWJ Applet">
130 <param name="noddraw.check" value="true">
131 <param name="progressbar" value="true">
132 <param name="jnlpNumExtensions" value="1">
133 <param name="jnlpExtension1" value="http://download.java.net/media/jogl/builds/archive/jsr-231-webstart-current/jogl.jnlp">
134 </applet>
136 <form name="controlPanel" id="controlPanel">
138 <table cellspacing="20"><tr>
139 <td valign="top">
140 <select name="locations" id="locations" size="8" style="width: 250px" onDblClick="goto(this.options[this.selectedIndex].value);return false;">
141 <option value="Mount St-Helens, USA;46.1956;-122.1911;30000;140;80" selected>Mount St-Helens, USA</option>
142 <option value="Grand Canyon, USA;36.1;-112.1;100000;30;45">Grand Canyon, USA - Overview</option>
143 <option value="Grand Canyon, USA;36.1;-112.0;50000;270;60">Grand Canyon, USA - Close up 1</option>
144 <option value="Grand Canyon, USA;36.2;-112.2;30000;100;75">Grand Canyon, USA - Close up 2</option>
145 <option value="Nice, France;43.705;7.28;25000;30;80">Nice, France</option>
146 <option value="Sydney, Australia;-33.8579;151.2135;30000;0;60">Sidney, Australia</option>
147 </select>
148 </td>
149 <td valign="top">
150 <input type="BUTTON" value="&gt; Fly to location" onClick="goto(this.form.locations.options[this.form.locations.selectedIndex].value);"><br />
151 <br />
152 <input type="BUTTON" value="&lt; Save current location" onClick="addLocation();"><br />
153 <br />
154 <input type="BUTTON" value="Move up" onClick="moveLocation(this.form.locations.selectedIndex, -1);">
155 <input type="BUTTON" value="Move down" onClick="moveLocation(this.form.locations.selectedIndex, 1);"><br />
156 <input type="BUTTON" value="x Remove location" onClick="removeLocation(this.form.locations.selectedIndex);"><br />
157 <!-- <input type="BUTTON" value="Save" onClick="saveLocations();"> -->
158 <!-- <input type="BUTTON" value="Load" onClick="loadLocations();"> -->
159 </td>
160 <td valign="top">
161 Distance:<br />
162 <!-- This change the eye distance or zoom -->
163 <input type="BUTTON" value="10km" onClick="wwjApplet.getSubApplet().setZoom(10000);"><br />
164 <input type="BUTTON" value="20km" onClick="wwjApplet.getSubApplet().setZoom(20000);"><br />
165 <input type="BUTTON" value="100km" onClick="wwjApplet.getSubApplet().setZoom(100000);"><br />
166 <input type="BUTTON" value="500km" onClick="wwjApplet.getSubApplet().setZoom(500000);"><br />
167 <input type="BUTTON" value="2000km" onClick="wwjApplet.getSubApplet().setZoom(2000000);"><br />
168 </td>
169 <td valign="top">
170 <!-- This change the heading and pitch-->
171 Looking:<br />
172 <input type="BUTTON" value="North" onClick="wwjApplet.getSubApplet().setHeadingAndPitch(0, 60);"><br />
173 <input type="BUTTON" value="East" onClick="wwjApplet.getSubApplet().setHeadingAndPitch(90, 60);"><br />
174 <input type="BUTTON" value="South" onClick="wwjApplet.getSubApplet().setHeadingAndPitch(180, 60);"><br />
175 <input type="BUTTON" value="West" onClick="wwjApplet.getSubApplet().setHeadingAndPitch(-90, 60);"><br />
176 <input type="BUTTON" value="Reset" onClick="wwjApplet.getSubApplet().setHeadingAndPitch(0, 0);"><br />
177 </td>
178 </tr></table>
180 </form>
183 </body>
184 </html>