NCCOOS Trac Projects: Top | Web | Platforms | Processing | Viz | Sprints | Sandbox | (Wind)

root/Chameleon/trunk/Chameleon/WMSBrowser/mapbrowser_template_en.html

Revision 13 (checked in by jcleary, 17 years ago)

Latest Chameleon code checkout from previous repository

Line 
1 <!-- defaults for Text Buttons -->
2
3 <cwc2 type="SharedResource" name="TextButtons">
4
5     <textbuttonbackgroundimage value=""/>
6
7     <imagewidth value="120"/>
8
9     <imageheight value="24"/>
10
11     <textbuttonpadding value="0"/>
12
13     <textbuttonnudge value="0"/>
14
15     <labelcolor value="111111"/>
16
17     <labelfont value="fonts/Vera.ttf"/>
18
19     <labelalign value="left"/>
20
21     <labelfontsize value="8"/>
22
23     <labelantialias value="true"/>
24
25     <usetextbuttoncache value="false"/>
26
27     <state value="normal">
28
29         <textbuttoncolor value="f0f0f0"/>
30
31         <textbuttonborder_topleft_image value="borders/border_tl_1.png"/>
32
33         <textbuttonborder_top_image value="borders/border_t_1.png"/>
34
35         <textbuttonborder_topright_image value="borders/border_tr_1.png"/>
36
37         <textbuttonborder_right_image value="borders/border_r_1.png"/>
38
39         <textbuttonborder_left_image value="borders/border_l_1.png"/>
40
41         <textbuttonborder_bottomright_image value="borders/border_br_1.png"/>
42
43         <textbuttonborder_bottom_image value="borders/border_b_1.png"/>
44
45         <textbuttonborder_bottomleft_image value="borders/border_bl_1.png"/>
46
47     </state>
48
49     <state value="hover">
50
51         <textbuttoncolor value="cccccc"/>
52
53         <textbuttonborder_topleft_image value="borders/border_tl_2.png"/>
54
55         <textbuttonborder_top_image value="borders/border_t_2.png"/>
56
57         <textbuttonborder_topright_image value="borders/border_tr_2.png"/>
58
59         <textbuttonborder_right_image value="borders/border_r_2.png"/>
60
61         <textbuttonborder_left_image value="borders/border_l_2.png"/>
62
63         <textbuttonborder_bottomright_image value="borders/border_br_2.png"/>
64
65         <textbuttonborder_bottom_image value="borders/border_b_2.png"/>
66
67         <textbuttonborder_bottomleft_image value="borders/border_bl_2.png"/>
68
69     </state>
70
71     <state value="selected">
72
73         <textbuttoncolor value="cccccc"/>
74
75         <textbuttonborder_topleft_image value="borders/border_tl_3.png"/>
76
77         <textbuttonborder_top_image value="borders/border_t_3.png"/>
78
79         <textbuttonborder_topright_image value="borders/border_tr_3.png"/>
80
81         <textbuttonborder_right_image value="borders/border_r_3.png"/>
82
83         <textbuttonborder_left_image value="borders/border_l_3.png"/>
84
85         <textbuttonborder_bottomright_image value="borders/border_br_3.png"/>
86
87         <textbuttonborder_bottom_image value="borders/border_b_3.png"/>
88
89         <textbuttonborder_bottomleft_image value="borders/border_bl_3.png"/>
90
91     </state>
92
93 </cwc2>
94
95 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
96
97 <html>
98
99
100
101 <head>
102
103 <title>Map Browser</title>
104
105 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
106
107 <link href="[$gszCoreWebPath$]/skins/default/css/cwc2.css" rel="stylesheet" type="text/css">
108
109 <link href="[$gszCoreWebPath$]/widgets/css/mapbrowser.css" rel="stylesheet" type="text/css">
110
111 <style type="text/css">
112
113
114
115 div
116
117 {
118
119   font-family : Arial, Helvetica, sans-serif;
120
121   font-size : 11px;
122
123 }
124
125
126
127 .label
128
129 {
130
131   font-family : Arial, Helvetica, sans-serif;
132
133   font-size : 11px;
134
135 }
136
137
138
139 </style>
140
141
142
143 <!-- custom javascript to hook it all together -->
144
145 <script language="JavaScript" type="text/JavaScript" type="text/javascript">
146
147 var browser ="";
148
149 var version = "";
150
151
152
153 var currentLayer = "";
154
155
156
157 var szOverrideExtents = "[$PREVIEWEXTENTS|$]";
158
159 var szOverrideSRS = "[$PREVIEWSRS|$]";
160
161
162
163 if (navigator.appName == "Netscape")
164
165 {
166
167     browser = "netscape";
168
169     if ( navigator.appVersion[0] <= 4)
170
171       version = 4;
172
173     else
174
175       version = 5;
176
177 }
178
179 else
180
181 {
182
183     browser = "ie";
184
185 }
186
187
188
189 /**
190
191  * called when the page loads
192
193  */
194
195 function myOnLoad()
196
197 {
198
199 }
200
201
202
203 /**
204
205  * handle the user changing WMS Servers by 'telling' the two wms cache
206
207  * widgets which server to consider 'active'
208
209  */
210
211 function myOnChange( obj, opt )
212
213 {
214
215     document.forms[0].WMSSERVERS.value = opt.value;
216
217     document.forms[0].WMSLAYERS.value = opt.value;
218
219     document.forms[0].submit();
220
221 }
222
223
224
225 /*
226
227  * this function is called when a layer is clicked in the tree.
228
229  * the function scans the shared resource for the layer id and
230
231  * then updates the abstract and puts the layer in the map for previewing
232
233  *
234
235  * layer_id - a unique value from the wms cache.
236
237  */
238
239 function myTreeClicked( layer_id )
240
241 {
242
243     catalogSearchReset();
244
245
246
247     layer_id = parseInt( String(layer_id) );
248
249     var sr = goJSSR.GetValue( "WMSLAYERS" ).maoChildren[0];
250
251     var child = mySearch( sr, layer_id );
252
253
254
255     if (child != null)
256
257     {
258
259         currentLayer = child;
260
261
262
263         var szAbstract = "<strong>Abstract:</strong>&nbsp;";
264
265         szAbstract = szAbstract + child.GetValue("title") + "<br>\n";
266
267
268
269         szAbstract = szAbstract + child.GetValue( "abstract" );
270
271
272
273         ShowContents( "abstract", szAbstract );
274
275
276
277         previewLayer( child, sr );
278
279         document.forms[0].selectedLayers.value = layer_id;
280
281     }
282
283     else
284
285     {
286
287         ShowContents( "abstract", "<strong>Abstract:</strong>&nbsp;Select a layer." );
288
289     }
290
291 }
292
293
294
295 function previewLayer( child, sr )
296
297 {
298
299     var szName = child.GetValue( "name" );
300
301     var szTitle = child.GetValue( "title" );
302
303
304
305     //catch servers and themes that are not viewable
306
307     if (szName == "" || child.GetValue( "server_id" ) != "")
308
309     {
310
311         //alert( "Cannot add " + szTitle + ", it is not a valid WMS layer" );
312
313         return false;
314
315     }
316
317     else if( child.GetValue( "serviceId" ) != "" )
318
319     {
320
321         showActivityLayer();
322
323
324
325         if (document.all)
326
327             iframe = document.all.frame_CatalogSearchResult;
328
329         else
330
331             iframe = document.getElementById( 'frame_CatalogSearchResult' );
332
333
334
335         var szSrc  = '[$gszCoreWebPath$]/widgets/CatalogSearch/CatalogSearchScript.php?sid=[$SID$]&serviceId='+
336
337             child.GetValue( "serviceId" )+
338
339             '&szFormat='+sr.GetValue( "format" );
340
341
342
343         if ( szOverrideSRS != '' )
344
345         {
346
347             szSrc = szSrc + "&SRS=" + szOverrideSRS;
348
349         }
350
351
352
353         if (szOverrideExtents != '' )
354
355         {
356
357             szSrc = szSrc + "&BBOX=" + szOverrideExtents;
358
359         }
360
361
362
363         iframe.src = szSrc;
364
365
366
367         return false;
368
369     }
370
371     else
372
373     {
374
375         showActivityLayer();
376
377         //sr still refers to the server that owns this layer.
378
379         var szSRS = sr.GetValue( "srs" );
380
381         if( szSRS.indexOf( " " ) != -1)
382
383             szSRS = szSRS.substr( 0, szSRS.indexOf( " " ) );
384
385         var szConnection = sr.GetValue( "map_url" );
386
387         var szVersion = sr.GetValue( "version" );
388
389         var szFormat = sr.GetValue( "format" );
390
391         //build the WMS connection string
392
393         var szURL = szConnection;
394
395         if (szURL.lastIndexOf( "?" ) == -1)
396
397         {
398
399             //need to add ?
400
401             szURL = szURL + "?";
402
403         }
404
405         else if (szURL.substr( -1 ) != "?" && szURL.substr( -1 ) != "&"-90 )
406
407         {
408
409             //need to add &
410
411             szURL = szURL + "&";
412
413         }
414
415         szURL = szURL + "service=WMS&";
416
417         szURL = szURL + "styles=&";
418
419         szURL = szURL + "version=" + szVersion + "&";
420
421         szURL = szURL + "request=GetMap&";
422
423
424
425
426
427         if ( szOverrideSRS != '' )
428
429         {
430
431             szURL = szURL + "SRS=" + szOverrideSRS + "&";
432
433         }
434
435         else
436
437         {
438
439             szURL = szURL + "SRS=EPSG:4326&";
440
441         }
442
443
444
445         var bbox;
446
447         if (szOverrideExtents != '' )
448
449         {
450
451             bbox = szOverrideExtents;
452
453         }
454
455         else
456
457         {
458
459             bbox = child.GetValue( "bbox" );
460
461         }
462
463
464
465         szURL = szURL + "BBOX="+ bbox+"&";
466
467         szURL = szURL + "width=220&";
468
469         szURL = szURL + "height=220&";
470
471         szURL = szURL + "layers=" + szName + "&";
472
473         //szURL = szURL + "styles=&";
474
475         szURL = szURL + "format=" + szFormat + "&";
476
477         szURL = szURL + "exceptions=application/vnd.ogc.se_inimage";
478
479         document.images.mapimage.src = szURL;
480
481         return true;
482
483     }
484
485 }
486
487
488
489 /**
490
491  * this function searches the shared resource for the layer that was clicked.
492
493  */
494
495 function mySearch( sr, value )
496
497 {
498
499     var i;
500
501     var result = null;
502
503
504
505     if (sr.GetValue( "layer_id" ) == value)
506
507     {
508
509       result = sr;
510
511     }
512
513     else
514
515     {
516
517         if (sr.maoChildren.length > 0)
518
519         {
520
521             for (i=0; result == null && i < sr.maoChildren.length; i++)
522
523             {
524
525                 result = mySearch( sr.maoChildren[i], value );
526
527             }
528
529         }
530
531     }
532
533     return result;
534
535 }
536
537
538
539 function showActivityLayer()
540
541 {
542
543     document.images.activity.src = "[$gszCoreWebPath$]/skins/default/images/spinner.gif";
544
545 }
546
547
548
549 function hideActivityLayer()
550
551 {
552
553     document.images.activity.src = "[$gszCoreWebPath$]/skins/default/images/a_pixel.gif";
554
555 }
556
557
558
559 function UTLGetLayerForContents(name)
560
561 {
562
563     if (browser == "netscape")
564
565     {
566
567         if (version == "4")
568
569         {
570
571             return document.layers[name];
572
573         }
574
575         else
576
577         {
578
579             if (eval('document.getElementById("' + name + '")') != null)
580
581             {
582
583                 layer = eval('document.getElementById("' + name + '")');
584
585                 return layer;
586
587             }
588
589             else
590
591             {
592
593                 return null;
594
595             }
596
597         }
598
599     }
600
601
602
603     else if (browser == "ie")
604
605     {
606
607         if (eval('document.all.' + name) != null)
608
609         {
610
611             layer = eval('document.all.' + name);
612
613             return layer;
614
615         }
616
617         else
618
619         {
620
621             return null;
622
623         }
624
625     }
626
627 }
628
629
630
631 function ShowContents(szLayerName,szContents)
632
633 {
634
635      oLayer = UTLGetLayerForContents(szLayerName);
636
637      //hello
638
639      if (browser == "netscape" && version == "4")
640
641      {
642
643          oLayer.document.open();
644
645          oLayer.document.write(szContents);
646
647          oLayer.document.close();
648
649      }
650
651      else
652
653      {
654
655          oLayer.innerHTML = szContents;
656
657      }
658
659 }
660
661
662
663 /*
664
665  * Since we are in multiple frame environment, we need to copy the
666
667  * CatalogSearch functions in the main frame.
668
669  */
670
671 var szLayerAltTitle = "";
672
673 function catalogSearchCB( aszLayerAttributes )
674
675 {
676
677     szLayerAltTitle = aszLayerAttributes[1];
678
679     aszLayerAttributes[1] = "";
680
681     window.frames.treeview.catalogSearchCB( aszLayerAttributes );
682
683
684
685     return;
686
687 }
688
689
690
691
692
693 function catalogSearchReset()
694
695 {
696
697     window.frames.treeview.catalogSearchReset();
698
699
700
701     return;
702
703 }
704
705
706
707
708
709 function applyCatalogSearchLayer()
710
711 {
712
713     window.frames.treeview.updateAndApplyCatalogSearchLayer(szLayerAltTitle);
714
715 }
716
717 /*
718
719  * End CatalogSearch functions.
720
721  */
722
723
724
725 function catalogSearchCallback( szURL, aszLayerAttributes )
726
727 {
728
729     document.images.mapimage.src = szURL;
730
731     var iframe = document.getElementById( "frame_CatalogSearchResult" );
732
733     iframe.src = "[$gszCoreWebPath$]/skins/default/images/a_pixel.gif";
734
735
736
737     catalogSearchCB( aszLayerAttributes );
738
739 }
740
741
742
743 //:TODO: make a widget that generates this fn
744
745 function CallBackFunc(obj, actionId)
746
747 {
748
749     if( actionId != 1 && currentLayer != "" && currentLayer.GetValue("serviceId") != "" )
750
751     {
752
753         applyCatalogSearchLayer();
754
755     }
756
757     else
758
759     {
760
761         window.opener.BrowseWMSCallBack(actionId, window);
762
763     }
764
765 }
766
767 </script>
768
769
770
771 </head>
772
773
774
775 <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onLoad="myOnLoad()">
776
777 <form name="form1" method="post" action="">
778
779 <table border="0" cellspacing="0" cellpadding="0">
780
781   <tr>
782
783     <td colspan="2" class="bevel4"><img src="title_layers.gif" width="22" height="22" align="texttop">&nbsp;<span class="title">Explore WMS Layers</span></td>
784
785   </tr>
786
787   <tr>
788
789     <td colspan="2" class="bevel2"><div class="helpArea"><strong>BROWSE:</strong> Select a server in the list below to browse its WMS layers.<br>
790
791     <strong>SEARCH:</strong> Supply search terms in the field below and click the search button.<br>
792
793     Select 'Search Results' from the list at any time to browse the found WMS layers.<br>
794
795     <strong>ADD TO MAP:</strong> Click the 'add to map' button at the bottom of this dialog to add the selected layer.</div></td>
796
797   </tr>
798
799   <tr>
800
801     <td class="bevel2" valign="bottom"><iframe frameborder="0" name="treeview" id="treeview" scrolling="No" width="330" height="395" src="[$gszCoreWebPath$]/widgets/WMSBrowser/WMSBrowser.php?template=mapbrowser_iframe_en.html&sid=[$SID$]"></iframe></td>
802
803     <td class="bevel3" valign="top">
804
805       <table border="0" cellpadding="0" cellspacing="5">
806
807         <tr>
808
809           <td>
810
811             <div id="ActivityLayer" style="position:absolute;width:240;height:240">
812
813               <table border="0" cellpadding="0" cellspacing="0" width="240" height="240">
814
815                 <tr>
816
817                   <td valign="center" align="center">
818
819                     <img name="activity" width="216" height="50" src="../images/spinner.gif">
820
821                   </td>
822
823                 </tr>
824
825               </table>
826
827             </div>
828
829           </td>
830
831         </tr>
832
833         <tr>
834
835           <td width="240" height="240" align="center" class="rbevel4"><img name="mapimage" src="[$gszCoreWebPath$]/skins/default/images/a_pixel.gif" width="240" height="240" border="1" onload="hideActivityLayer()" onerror="hideActivityLayer()"></td>
836
837         </tr>
838
839         <tr>
840
841           <td><div class="rbevel2" id="abstract" style="position:relative; width: 240px; height: 140px; overflow: scroll;"><strong>Abstract:</strong>&nbsp;Select a layer.</div></td>
842
843         </tr>
844
845       </table>
846
847     </td>
848
849   </tr>
850
851   <tr>
852
853     <td colspan="2" align="right">
854
855       <table border="0" cellpadding="0" cellspacing="5">
856
857         <tr>
858
859           <td width="24"><cwc2 type="Link" linktype="javascript" jsfunction="CallBackFunc" jsparams="0" styleresource="TextButtons" Image="icons/icon_add.png" Label="Add Layer" ImageTip="Add the selected layer to the Map">
860
861               <image state="normal"/>
862
863               <image state="hover"/>
864
865               <image state="selected"/>
866
867           </cwc2></td>
868
869           <td width="24"><cwc2 type="Link" linktype="javascript" jsfunction="CallBackFunc" jsparams="1" styleresource="TextButtons" Image="icons/icon_close.png" Label="Close" ImageTip="Close this dialog">
870
871               <image state="normal"/>
872
873               <image state="hover"/>
874
875               <image state="selected"/>
876
877           </cwc2></td>
878
879         </tr>
880
881       </table>
882
883     </td>
884
885   </tr>
886
887 </table>
888
889 <input type="hidden" name="selectedLayers" value="" size=80>
890
891 <div style="position:absolute;top:1ps;left:1px;visibility:hidden">
892
893 <iframe name="frame_CatalogSearchResult" id="frame_CatalogSearchResult"></iframe>
894
895 </div>
896
897 </form>
898
899 </body>
900
901 </html>
902
Note: See TracBrowser for help on using the browser.