From 9def710214ea4d940e1ec357dcc69318948af013 Mon Sep 17 00:00:00 2001 From: euzuro Date: Wed, 17 May 2006 03:13:41 +0000 Subject: [PATCH] always delete everything and rebuild everything on redraw(). Just simpler this way git-svn-id: http://svn.openlayers.org/trunk/openlayers@81 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- lib/OpenLayers/Control/LayerSwitcher.js | 62 +++++++++++++------------ 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/lib/OpenLayers/Control/LayerSwitcher.js b/lib/OpenLayers/Control/LayerSwitcher.js index 1ce4dfcd7e..fad3d93de3 100644 --- a/lib/OpenLayers/Control/LayerSwitcher.js +++ b/lib/OpenLayers/Control/LayerSwitcher.js @@ -45,38 +45,40 @@ OpenLayers.Control.LayerSwitcher.prototype = * @type DOMElement */ redraw: function() { - var pixel = new OpenLayers.Pixel(this.map.div.clientWidth - 200, 4); - this.div.innerHTML = ""; - for(i=0; i < this.map.layers.length; i++) { - var div = $('LayerControl_layer' + i); - if (!div) { - div = OpenLayers.Util.createDiv("LayerControl_layer" + i, - pixel, - new OpenLayers.Size(200, 20)); - - div.innerHTML = this.map.layers[i].name; - var visible = this.map.layers[i].getVisibility(); - if (!visible) { - div.style.backgroundColor = - OpenLayers.Control.LayerSwitcher.NONACTIVE_COLOR; - div.style.color = - OpenLayers.Control.LayerSwitcher.ACTIVE_COLOR; - } else { - div.style.backgroundColor = - OpenLayers.Control.LayerSwitcher.ACTIVE_COLOR; - div.style.color = - OpenLayers.Control.LayerSwitcher.NONACTIVE_COLOR; - } - div.style.padding = "5px"; - - //tag references onto the div for use in event handlers - div.layerid = i; - div.map = this.map; - div.ondblclick = this.doubleClick.bindAsEventListener(div); - div.onmousedown = this.singleClick.bindAsEventListener(div); - this.div.appendChild(div); + //clear out previous incarnation of LayerSwitcher tabs + this.div.innerHTML = ""; + + var pixel = new OpenLayers.Pixel(this.map.div.clientWidth - 200, 4); + for(i=0; i < this.map.layers.length; i++) { + + div = OpenLayers.Util.createDiv("LayerControl_layer" + i, + pixel, + new OpenLayers.Size(200, 20)); + + div.innerHTML = this.map.layers[i].name; + var visible = this.map.layers[i].getVisibility(); + if (!visible) { + div.style.backgroundColor = + OpenLayers.Control.LayerSwitcher.NONACTIVE_COLOR; + div.style.color = + OpenLayers.Control.LayerSwitcher.ACTIVE_COLOR; + } else { + div.style.backgroundColor = + OpenLayers.Control.LayerSwitcher.ACTIVE_COLOR; + div.style.color = + OpenLayers.Control.LayerSwitcher.NONACTIVE_COLOR; } + div.style.padding = "5px"; + + //tag references onto the div for use in event handlers + div.layerid = i; + div.map = this.map; + + div.ondblclick = this.doubleClick.bindAsEventListener(div); + div.onmousedown = this.singleClick.bindAsEventListener(div); + this.div.appendChild(div); + pixel = pixel.add(0, 35); } return this.div;