Ticket #716: layerswitcher.patch
| File layerswitcher.patch, 5.6 kB (added by crschmidt, 1 year ago) |
|---|
-
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> -
lib/OpenLayers/Control/LayerSwitcher.js
old new 187 187 this.clearLayersArray("data"); 188 188 189 189 var containsOverlays = false; 190 var containsBaseLayers = false; 190 191 191 192 var layers = this.map.layers.slice(); 192 193 if (!this.ascending) { layers.reverse(); } … … 194 195 var layer = layers[i]; 195 196 var baseLayer = layer.isBaseLayer; 196 197 197 if ( baseLayer ||layer.displayInLayerSwitcher) {198 if (layer.displayInLayerSwitcher) { 198 199 199 200 if (!baseLayer) { 200 201 containsOverlays = true; 201 } 202 } else { 203 containsBaseLayers = true; 204 } 202 205 203 206 // only check a baselayer if it is *the* baselayer, check data 204 207 // layers if they are visible … … 258 261 259 262 // if no overlays, dont display the overlay label 260 263 this.dataLbl.style.display = (containsOverlays) ? "" : "none"; 264 265 // if no overlays, dont display the overlay label 266 this.baseLbl.style.display = (containsBaseLayers) ? "" : "none"; 261 267 262 268 return this.div; 263 269 }, … … 428 434 this.layersDiv.style.height = "100%"; 429 435 430 436 431 varbaseLbl = document.createElement("div");432 baseLbl.innerHTML = "<u>Base Layer</u>";433 baseLbl.style.marginTop = "3px";434 baseLbl.style.marginLeft = "3px";435 baseLbl.style.marginBottom = "3px";437 this.baseLbl = document.createElement("div"); 438 this.baseLbl.innerHTML = "<u>Base Layer</u>"; 439 this.baseLbl.style.marginTop = "3px"; 440 this.baseLbl.style.marginLeft = "3px"; 441 this.baseLbl.style.marginBottom = "3px"; 436 442 437 443 this.baseLayersDiv = document.createElement("div"); 438 444 this.baseLayersDiv.style.paddingLeft = "10px"; … … 451 457 this.dataLayersDiv.style.paddingLeft = "10px"; 452 458 453 459 if (this.ascending) { 454 this.layersDiv.appendChild( baseLbl);460 this.layersDiv.appendChild(this.baseLbl); 455 461 this.layersDiv.appendChild(this.baseLayersDiv); 456 462 this.layersDiv.appendChild(this.dataLbl); 457 463 this.layersDiv.appendChild(this.dataLayersDiv); 458 464 } else { 459 465 this.layersDiv.appendChild(this.dataLbl); 460 466 this.layersDiv.appendChild(this.dataLayersDiv); 461 this.layersDiv.appendChild( baseLbl);467 this.layersDiv.appendChild(this.baseLbl); 462 468 this.layersDiv.appendChild(this.baseLayersDiv); 463 469 } 464 470 -
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>
