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
This commit is contained in:
euzuro
2006-05-17 03:13:41 +00:00
parent ca0a8407b4
commit 9def710214

View File

@@ -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;