break out post-rendering into seperate function to be defined in page. This

removes the tie between the LayerSwitcher and Ext that I had in my first
commit. 


git-svn-id: http://svn.openlayers.org/trunk/openlayers@7381 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
crschmidt
2008-06-19 18:44:25 +00:00
parent 9724b0a214
commit b78e26e9f0
2 changed files with 51 additions and 9 deletions

View File

@@ -254,6 +254,7 @@ OpenLayers.Control.LayerSwitcher =
};
}
this.layerDivList = [];
var layers = this.map.layers.slice();
if (!this.ascending) { layers.reverse(); }
for( var i = 0; i < layers.length; i++) {
@@ -273,6 +274,10 @@ OpenLayers.Control.LayerSwitcher =
var checked = (baseLayer) ? (layer == this.map.baseLayer)
: layer.getVisibility();
var layerDiv = document.createElement("div");
layerDiv.id = this.id+"_layerDiv_"+layer.id;
layerDiv.className = "olControlLayerSwitcherLayerDiv";
// create input element
var inputElem = document.createElement("input");
inputElem.id = "input_" + layer.name;
@@ -307,9 +312,6 @@ OpenLayers.Control.LayerSwitcher =
OpenLayers.Function.bindAsEventListener(this.onInputClick,
context)
);
// create line break
var br = document.createElement("br");
var groupArray = (baseLayer) ? this.baseLayers
: this.dataLayers;
@@ -319,12 +321,16 @@ OpenLayers.Control.LayerSwitcher =
'labelSpan': labelSpan
});
var groupDiv = (baseLayer) ? this.baseLayersDiv
: this.dataLayersDiv;
groupDiv.appendChild(inputElem);
groupDiv.appendChild(labelSpan);
groupDiv.appendChild(br);
layerDiv.appendChild(inputElem);
layerDiv.appendChild(labelSpan);
this.layerDivList.push(layerDiv);
groupDiv.appendChild(layerDiv);
this.layerRenderAdditional(layerDiv, layer);
}
}
@@ -334,9 +340,13 @@ OpenLayers.Control.LayerSwitcher =
// if no baselayers, dont display the baselayer label
this.baseLbl.style.display = (containsBaseLayers) ? "" : "none";
return this.div;
},
layerRenderAdditional: function(layerDiv, layer) {
},
/**
* Method:
* A label has been clicked, check or uncheck its corresponding input