source: cowsclient/branches/qesdi/cowsclient/templates/wmsviz.html @ 5557

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/cowsclient/branches/qesdi/cowsclient/templates/wmsviz.html@5557
Revision 5557, 10.4 KB checked in by pnorton, 10 years ago (diff)

Implemented a basic (no legend/metadata/axis) get figure on the UI. Also re-implemented the getData button for the selected layer.

Line 
1<html xmlns:py="http://genshi.edgewall.org/" 
2      xmlns="http://www.w3.org/1999/xhtml"
3      xmlns:xi="http://www.w3.org/2001/XInclude">   
4<xi:include href="utils.html" />
5<head>
6<link type="text/css" rel="stylesheet" href="$g.server/layout/ddc_style.css"/>
7<link type="text/css" rel="stylesheet" href="$g.server/layout/ddc_vis.css"/>
8<link type="text/css" rel="stylesheet" href="$g.server/layout/ndg2.css"/>
9<!-- <script type='text/javascript'
10        src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script> -->
11
12
13<!-- BEGIN: Yahoo Interface Library -->
14<link type="text/css" rel="stylesheet"
15    href="$g.server/js/yui/treeview/assets/skins/sam/treeview.css"/> 
16     
17<!-- Dependency source files --> 
18<script src = "$g.server/js/yui/yahoo/yahoo-min.js" ></script> 
19<script src = "$g.server/js/yui/event/event-min.js" ></script> 
20 
21<!-- TreeView source file --> 
22<script src = "$g.server/js/yui/treeview/treeview-min.js" ></script> 
23
24<!-- TreeView Menu Style -->
25<link rel="stylesheet" type="text/css" href="$g.server/js/yui/treeview/assets/treeview-menu.css"/> 
26
27<link rel="stylesheet" type="text/css" href="$g.server/js/yui/fonts/fonts-min.css?_yuiversion=2.5.0" />
28
29<!-- needed for the drag and drop list -->
30<script type="text/javascript" src="$g.server/js/yui/utilities/utilities.js" ></script>
31<script type="text/javascript" src="$g.server/js/yui/dragdrop/dragdrop.js" ></script>
32
33
34<link type="text/css" rel="stylesheet" href="$g.server/layout/drag_drop_style.css"/>
35<script src = "$g.server/js/dragAndDrop.js" ></script> 
36
37<!-- END: Yahoo Interface Library -->
38
39<!-- BEGIN: WMSC library -->
40<link type="text/css" rel="stylesheet" href="$g.server/layout/control.css"/>
41
42
43<script src="$g.server/js/wmsc.js"></script>
44<script src="$g.server/js/prototype.js"></script>
45<script src="$g.server/js/OpenLayers/lib/OpenLayers.js" />
46<script src="$g.server/js/openlayers-x.js"/>
47<!-- script src="$g.server/js/dimensionControl.js"/ -->
48<script src="$g.server/js/mapControl.js"/>
49<script src="$g.server/js/layerControl.js"></script> 
50<script src="$g.server/js/capabilities.js"></script>
51<script src="$g.server/js/wcs.js"></script>
52
53<script src="$g.server/js/displayOptionsRetriever.js"></script>
54<script src="$g.server/js/legendRetriever.js"></script>
55<script src="$g.server/js/json2.js"></script>
56
57<script src="$g.server/js/layerList.js"></script>
58
59<link rel="stylesheet" type="text/css" href="$g.server/layout/bottom_controls.css" />
60
61<!-- The layer properties stuff -->
62
63<link rel="stylesheet" type="text/css" href="$g.server/layout/layer_properties.css" />
64
65<script src="$g.server/js/layerInformation.js"></script>
66<script src="$g.server/js/layerDisplayOptions.js"></script>
67<script src="$g.server/js/layerDimensions.js"></script>
68<script src="$g.server/js/layerParameters.js"></script>
69
70<script src="$g.server/js/figureBuilder.js"></script>
71
72<script src="$g.server/js/legendContainer.js"></script>
73<script src="$g.server/js/boundsControl.js"></script>
74<script src="$g.server/js/utils.js"></script>
75<script src="$g.server/js/wmcRetriever.js"></script>
76
77<!-- END: WMSC library -->
78
79<script type="text/javascript">
80
81// Hook into application for debugging.   
82var app = null;
83var control = null;
84var layerList = null;
85var layerParameters = null;
86
87<?python
88from pylons import session 
89?>   
90
91function alertWMC(wmc) {
92        //alert("wmc = " + wmc);
93}
94
95function init() 
96{
97
98    var wmcRetriever = new WMCRetriever();
99       
100        layerList = new LayerList('layer_list');
101       
102    layerParameters = new LayerParameters('layer_properties', 'selection_form', wmcRetriever);
103   
104    var legendContainer = new LegendContainer('legend');
105
106    var figBuilder = new FigureBuilder('figureForm','make_figure_btn');
107
108   
109    var boundsControl = new WMSC.BoundsControl('dims');
110   
111    var coordControl = null;
112    var layerControl = new WMSC.VisAppLayers('layerTree', 'layerLeaves',wmcRetriever, 'new_endpoint', 'add_new_endpoint'); 
113
114
115    figBuilder.addLayerOrderChangedHandlers(layerList.events);
116   
117    layerList.addSelectorHandlers(layerControl.events);
118    layerParameters.addLayerListHandlers(layerList.events);
119    legendContainer.addLayerParametersHandlers(layerParameters.events);
120   
121    app = new WMSC.VisApp('map', 10, 640, true);
122
123    boundsControl.addMapSelectionChanged(app.events)
124    figBuilder.addMapSelectionChangedHandlers(app.events);
125   
126    app.addLayersHandlers(layerList.events);
127
128    app.addBoundsControl(boundsControl);
129
130    if (document.getElementById('wcsdownload') == null) {
131        createDownloadButton(wcsdownloadDiv);   
132    }
133
134    var initialSetupJSON = "${c.initialSetupJSON}";
135
136    var initialEndpoints = JSON.parse(initialSetupJSON);
137
138    for (var i=0;i&lt;initialEndpoints.length;i++) {
139        var endpoint = initialEndpoints[i];
140
141        if (endpoint.layers != undefined) {
142                layerControl.addLayersToSelect(endpoint.url, endpoint.layers);
143        }
144       
145        layerControl.addWebMapContext(endpoint.url);
146       
147    }
148
149
150   
151}
152
153function cleanup() 
154{
155    app.destroy();
156    layerList.destroy();
157    layerParameters.destroy();
158}
159   
160<!--! Help Icons -->
161<span py:def="helpIcon(value, elementType = 'div')">
162      <span>
163         <a href="javascript:;" title="Toggle help" onclick="toggleDiv(1,'$value','shown','hidden','$elementType'); return false;">
164         <img src="$g.helpIcon" alt="Toggle help" class="helpicon"/></a>
165      </span>
166</span>   
167
168</script>
169
170<!--<replace py:replace="pagehead()"/> -->
171</head>
172
173<body onload="init()" onunload="cleanup()">
174    <div id="entirepage">
175    <!--<div py:replace="header()"/>  -->
176    <!-- <div py:replace="PageTabs('View')"/> -->
177    <!-- <div py:replace="searchOneLine()"/> -->
178
179<div id="visBody">
180        <table>
181          <tr>
182            <td align="center">
183                <div id="mapBox">
184                    <div id="map"></div>
185                    <div id="legend"></div>
186                </div>
187            </td>
188            <td valign="top">
189              <div class="optDiv">
190                <b>Selection Description</b>
191                <div id="description">
192                  Complete your selection below to view  <span py:replace="helpIcon('coord_help', 'div')"/> 
193                </div>
194              </div>
195               
196                <div id="coord_help" class="hidden">
197                  <div class="helptxt">
198                        Specifying coordinate dimensions will select a region on the map;
199                        when this is appropriately sized, the map will automatically zoom to this region.<br/>
200                        'Reset selection' will return the map to its full, global size.<br/>
201                        Some map layers have additional dimensions, e.g. 'time';
202                        if these are available, they will also be displayed in this panel for selection.<br/>
203                        NB, the dimensions displayed are those relating to the selected dataset
204                        in the left hand tree view - however they will also be applied, where appropriate, to all selected map layers.
205                </div>
206              </div>   
207               
208              <div class="optDiv">
209                <b>Domain</b>
210                    <div id="dims"></div>
211              </div>
212            <div class="wcsDiv">
213                <b>Download Data for this Selection</b>
214                    <div id="wcsdownloadDiv"></div>
215              </div>
216           
217           
218            <form id="figureForm" action="http://localhost:5005/wmsviz/get_figure" method="get" target="_blank">
219              <b>Plot type</b><br/>
220              <input type="radio" name="figType" value="colour" checked="1"/>Colour<br/>
221              <input type="radio" name="figType" value="bw"/>B/W Contour<br/>
222              <b>Format</b><br/>
223              <select name="figFormat">
224                <option value="image/png" name="figFormat" selected="1"> PNG </option>
225                <option value="image/jpeg" name="figFormat"> JPEG </option>
226                <option value="application/postscript" name="figFormat"> EPS </option>
227                <option value="image/svg+xml" name="figFormat"> SVG </option>
228              </select>
229              <input type="button" value="Make Figure" id="make_figure_btn"/>
230            </form>
231           
232            </td>
233          </tr>
234        </table>
235
236        <table class="controlTable">
237            <col id="datasets_column"/>
238        <col id="layer_column"/>
239        <col id="properties_column"/>
240                 
241                <tr class="controlHeadings">
242                <th>Dataset  <span py:replace="helpIcon('dataset_help')"/> 
243                </th> 
244                <th> Layer <span py:replace="helpIcon('layer_help')"/></th>
245                <th> Properties</th>   
246                </tr>
247                <tr>
248                        <td>
249                            <div id="dataset_help" class="hidden">
250                                  <div class="helptxt">
251                                        Select a dataset to expand it and make its map layers visible; these can then be selected to add to the 'Layer'
252                                        panel for visualisation.<br/> 
253                                        Remove datasets from the display by clicking their <img src="$g.server/js/img/close.gif" /> icon.
254                                </div>
255                            </div>
256                        </td>
257                        <td>
258                            <div id="layer_help" class="hidden">
259                                  <div class="helptxt">
260                                      When multiple map layers are selected, the displayed map is constructed by sequentially adding the layers from the bottom of the list
261                                      to the top.<br/>
262                                      NB, if the topmost layer has legend data available then this will be displayed under the completed map.<br/>
263                                      Remove layers from the displayed map by clicking their <img src="$g.server/js/img/close.gif" /> icon.
264                                </div>
265                            </div>
266                        </td>
267                </tr>
268                <tr>
269                        <td class="controlPanel">
270                             <div class="controlContent" id="layerTree">
271                                 Please wait while datasets load
272                             </div>
273                <div>
274                    New Endpoint:<input type="text" id="new_endpoint" > </input> <input type="button" id="add_new_endpoint" value="Add"/>
275                </div>                       
276                        </td>
277                        <td class="controlPanel">
278                            <div class="controlContent" id="layerLeaves">
279
280                                <div class="workarea">
281                                    <ul class="draglist" id="layer_list">
282                                    </ul>
283                                    <input type="button" value="Remove Selected" id="btn_remove_selected_layer" />
284                                </div>
285                            </div>
286                        </td>
287            <td class="controlPanel">
288           
289                            <div id="layer_properties">
290                   
291                   
292                   
293                            <div id="layer_info_container">
294                                       <form id='layer_info_form'>
295                                       </form>
296                                    </div>
297       
298                            <div id="layer_display_options_container">     
299                                                    <form id='selection_form'>
300                                                    </form>
301                                            </div>
302                                           
303                                            <div id="layer_dimensions_container">
304                                                    <form id="WMSC_dimForm">
305                                                    </form>
306                                            </div>
307                                           
308                   
309                            </div>
310            </td>
311                </tr>
312        </table>
313       
314       
315
316   
317
318
319</div>
320</div>
321</body>
322</html>
Note: See TracBrowser for help on using the repository browser.