Ticket #716: ls.patch
| File ls.patch, 5.6 kB (added by crschmidt, 1 year ago) |
|---|
-
tests/Control/test_LayerSwitcher.html
old new 115 115 t.ok(control2.div.childNodes[1].childNodes[2].innerHTML.match("Base Layer"), "Base Layers last in LayerSwitcher with ascending false"); 116 116 t.ok(control2.div.childNodes[1].childNodes[0].innerHTML.match("Overlays"), "Base Layers last in LayerSwitcher with ascending false"); 117 117 } 118 119 function test_Control_LayerSwitcher_displayInLayerSwitcher (t) { 118 120 121 t.plan( 2 ); 119 122 123 map = new OpenLayers.Map('map'); 124 var layer = new OpenLayers.Layer.WMS("WMS", 125 "http://octo.metacarta.com/cgi-bin/mapserv?", 126 {map: "/mapdata/vmap_wms.map", layers: "basic"}, {'displayInLayerSwitcher': false}); 127 map.addLayer(layer); 128 129 control = new OpenLayers.Control.LayerSwitcher(); 130 map.addControl(control); 131 t.eq(control.div.childNodes[1].childNodes[0].style.display, "none" , "Base layer display off when no visble base layer"); 132 133 map = new OpenLayers.Map('map'); 134 var layer = new OpenLayers.Layer.WMS("WMS", 135 "http://octo.metacarta.com/cgi-bin/mapserv?", 136 {map: "/mapdata/vmap_wms.map", layers: "basic"}); 137 map.addLayer(layer); 138 139 control = new OpenLayers.Control.LayerSwitcher(); 140 map.addControl(control); 141 t.eq(control.div.childNodes[1].childNodes[0].style.display, "" , "Base layer display on when visble base layer"); 142 } 143 144 120 145 // --> 121 146 </script> 122 147 </head> -
lib/OpenLayers/Control/LayerSwitcher.js
old new 185 185 this.clearLayersArray("data"); 186 186 187 187 var containsOverlays = false; 188 var containsBaseLayers = false; 188 189 189 190 var layers = this.map.layers.slice(); 190 191 if (!this.ascending) { layers.reverse(); } … … 192 193 var layer = layers[i]; 193 194 var baseLayer = layer.isBaseLayer; 194 195 195 if ( baseLayer ||layer.displayInLayerSwitcher) {196 if (layer.displayInLayerSwitcher) { 196 197 197 if (!baseLayer) { 198 if (baseLayer) { 199 containsBaseLayers = true; 200 } else { 198 201 containsOverlays = true; 199 } 202 } 200 203 201 204 // only check a baselayer if it is *the* baselayer, check data 202 205 // layers if they are visible … … 256 259 257 260 // if no overlays, dont display the overlay label 258 261 this.dataLbl.style.display = (containsOverlays) ? "" : "none"; 262 263 // if no baselayers, dont display the baselayer label 264 this.baseLbl.style.display = (containsBaseLayers) ? "" : "none"; 259 265 260 266 return this.div; 261 267 }, … … 426 432 this.layersDiv.style.height = "100%"; 427 433 428 434 429 varbaseLbl = document.createElement("div");430 baseLbl.innerHTML = "<u>Base Layer</u>";431 baseLbl.style.marginTop = "3px";432 baseLbl.style.marginLeft = "3px";433 baseLbl.style.marginBottom = "3px";435 this.baseLbl = document.createElement("div"); 436 this.baseLbl.innerHTML = "<u>Base Layer</u>"; 437 this.baseLbl.style.marginTop = "3px"; 438 this.baseLbl.style.marginLeft = "3px"; 439 this.baseLbl.style.marginBottom = "3px"; 434 440 435 441 this.baseLayersDiv = document.createElement("div"); 436 442 this.baseLayersDiv.style.paddingLeft = "10px"; … … 449 455 this.dataLayersDiv.style.paddingLeft = "10px"; 450 456 451 457 if (this.ascending) { 452 this.layersDiv.appendChild( baseLbl);458 this.layersDiv.appendChild(this.baseLbl); 453 459 this.layersDiv.appendChild(this.baseLayersDiv); 454 460 this.layersDiv.appendChild(this.dataLbl); 455 461 this.layersDiv.appendChild(this.dataLayersDiv); 456 462 } else { 457 463 this.layersDiv.appendChild(this.dataLbl); 458 464 this.layersDiv.appendChild(this.dataLayersDiv); 459 this.layersDiv.appendChild( baseLbl);465 this.layersDiv.appendChild(this.baseLbl); 460 466 this.layersDiv.appendChild(this.baseLayersDiv); 461 467 } 462 468 -
examples/layerswitcher.html
old new 17 17 18 18 var ol_wms = new OpenLayers.Layer.WMS( "OpenLayers WMS", 19 19 "http://labs.metacarta.com/wms/vmap0", 20 {layers: 'basic'} );20 {layers: 'basic'}, {'displayInLayerSwitcher':false} ); 21 21 22 22 var jpl_wms = new OpenLayers.Layer.WMS( "NASA Global Mosaic", 23 23 "http://wms.jpl.nasa.gov/wms.cgi", 24 {layers: "modis,global_mosaic"} );24 {layers: "modis,global_mosaic"}, {'isBaseLayer': false}); 25 25 26 26 var dm_wms = new OpenLayers.Layer.WMS( "DM Solutions Demo", 27 27 "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap", … … 42 42 <h1>OpenLayers Example</h1> 43 43 <div id="layerswitcher" style="float:right; width: 20em;"></div> 44 44 <div id="map"></div> 45 <div id="docs"> 46 <p>This demonstrates use of the LayerSwitcher outside the map div. It also shows use 47 of the displayInLayerSwitcher option on the Layer to cause it to not display in the 48 LayerSwitcher.</p> 49 </div> 45 50 </body> 46 51 </html>
