diff --git a/lib/OpenLayers/Control/LayerSwitcher.js b/lib/OpenLayers/Control/LayerSwitcher.js index 67dc3f484a..c0752604da 100644 --- a/lib/OpenLayers/Control/LayerSwitcher.js +++ b/lib/OpenLayers/Control/LayerSwitcher.js @@ -3,27 +3,28 @@ * See license.txt in the OpenLayers distribution or repository for the * full text of the license. */ -/** +/** * @requires OpenLayers/Control.js * @requires OpenLayers/Lang.js * @requires OpenLayers/Console.js + * @requires OpenLayers/Util.js * @requires OpenLayers/Events/buttonclick.js */ /** * Class: OpenLayers.Control.LayerSwitcher - * The LayerSwitcher control displays a table of contents for the map. This + * The LayerSwitcher control displays a table of contents for the map. This * allows the user interface to switch between BaseLasyers and to show or hide - * Overlays. By default the switcher is shown minimized on the right edge of + * Overlays. By default the switcher is shown minimized on the right edge of * the map, the user may expand it by clicking on the handle. * - * To create the LayerSwitcher outside of the map, pass the Id of a html div + * To create the LayerSwitcher outside of the map, pass the Id of a html div * as the first argument to the constructor. - * + * * Inherits from: * - */ -OpenLayers.Control.LayerSwitcher = +OpenLayers.Control.LayerSwitcher = OpenLayers.Class(OpenLayers.Control, { /** @@ -37,104 +38,103 @@ OpenLayers.Control.LayerSwitcher = */ roundedCorner: false, - /** + /** * APIProperty: roundedCornerColor * {String} The color of the rounded corners, only applies if roundedCorner * is true, defaults to "darkblue". */ roundedCornerColor: "darkblue", - - /** - * Property: layerStates - * {Array(Object)} Basically a copy of the "state" of the map's layers + + /** + * Property: layerStates + * {Array(Object)} Basically a copy of the "state" of the map's layers * the last time the control was drawn. We have this in order to avoid * unnecessarily redrawing the control. */ layerStates: null, - // DOM Elements - + /** * Property: layersDiv - * {DOMElement} + * {DOMElement} */ layersDiv: null, - - /** + + /** * Property: baseLayersDiv * {DOMElement} */ baseLayersDiv: null, - /** + /** * Property: baseLayers * {Array(Object)} */ baseLayers: null, - - - /** + + + /** * Property: dataLbl - * {DOMElement} + * {DOMElement} */ dataLbl: null, - - /** + + /** * Property: dataLayersDiv - * {DOMElement} + * {DOMElement} */ dataLayersDiv: null, - /** + /** * Property: dataLayers - * {Array(Object)} + * {Array(Object)} */ dataLayers: null, - /** + /** * Property: minimizeDiv - * {DOMElement} + * {DOMElement} */ minimizeDiv: null, - /** + /** * Property: maximizeDiv - * {DOMElement} + * {DOMElement} */ maximizeDiv: null, - + /** * APIProperty: ascending - * {Boolean} + * {Boolean} */ ascending: true, - + /** * Constructor: OpenLayers.Control.LayerSwitcher - * + * * Parameters: * options - {Object} */ initialize: function(options) { OpenLayers.Control.prototype.initialize.apply(this, arguments); this.layerStates = []; - + if(this.roundedCorner) { OpenLayers.Console.warn('roundedCorner option is deprecated'); } }, /** - * APIMethod: destroy - */ + * APIMethod: destroy + */ destroy: function() { - - //clear out layers info and unregister their events + + //clear out layers info and unregister their events this.clearLayersArray("base"); this.clearLayersArray("data"); - + this.map.events.un({ buttonclick: this.onButtonClick, addlayer: this.redraw, @@ -144,15 +144,15 @@ OpenLayers.Control.LayerSwitcher = scope: this }); this.events.unregister("buttonclick", this, this.onButtonClick); - + OpenLayers.Control.prototype.destroy.apply(this, arguments); }, - /** + /** * Method: setMap * * Properties: - * map - {} + * map - {} */ setMap: function(map) { OpenLayers.Control.prototype.setMap.apply(this, arguments); @@ -176,9 +176,9 @@ OpenLayers.Control.LayerSwitcher = * Method: draw * * Returns: - * {DOMElement} A reference to the DIV DOMElement containing the + * {DOMElement} A reference to the DIV DOMElement containing the * switcher tabs. - */ + */ draw: function() { OpenLayers.Control.prototype.draw.apply(this); @@ -191,7 +191,7 @@ OpenLayers.Control.LayerSwitcher = } // populate div with current info - this.redraw(); + this.redraw(); return this.div; }, @@ -224,13 +224,13 @@ OpenLayers.Control.LayerSwitcher = } }, - /** + /** * Method: clearLayersArray * User specifies either "base" or "data". we then clear all the * corresponding listeners, the div, and reinitialize a new array. - * + * * Parameters: - * layersType - {String} + * layersType - {String} */ clearLayersArray: function(layersType) { this[layersType + "LayersDiv"].innerHTML = ""; @@ -241,9 +241,9 @@ OpenLayers.Control.LayerSwitcher = /** * Method: checkRedraw * Checks if the layer state has changed since the last redraw() call. - * + * * Returns: - * {Boolean} The layer state changed since the last redraw() call. + * {Boolean} The layer state changed since the last redraw() call. */ checkRedraw: function() { var redraw = false; @@ -254,41 +254,41 @@ OpenLayers.Control.LayerSwitcher = for (var i=0, len=this.layerStates.length; i labelSpan["for"] = inputElem.id; OpenLayers.Element.addClass(labelSpan, "labelSpan olButton"); labelSpan._layer = layer.id; @@ -350,12 +358,12 @@ OpenLayers.Control.LayerSwitcher = labelSpan.style.color = "gray"; } labelSpan.innerHTML = layer.name; - labelSpan.style.verticalAlign = (baseLayer) ? "bottom" + labelSpan.style.verticalAlign = (baseLayer) ? "bottom" : "baseline"; // create line break var br = document.createElement("br"); - - + + var groupArray = (baseLayer) ? this.baseLayers : this.dataLayers; groupArray.push({ @@ -363,8 +371,8 @@ OpenLayers.Control.LayerSwitcher = 'inputElem': inputElem, 'labelSpan': labelSpan }); - - + + var groupDiv = (baseLayer) ? this.baseLayersDiv : this.dataLayersDiv; groupDiv.appendChild(inputElem); @@ -374,24 +382,24 @@ OpenLayers.Control.LayerSwitcher = } // if no overlays, dont display the overlay label - this.dataLbl.style.display = (containsOverlays) ? "" : "none"; - + this.dataLbl.style.display = (containsOverlays) ? "" : "none"; + // if no baselayers, dont display the baselayer label - this.baseLbl.style.display = (containsBaseLayers) ? "" : "none"; + this.baseLbl.style.display = (containsBaseLayers) ? "" : "none"; return this.div; }, - /** + /** * Method: updateMap * Cycles through the loaded data and base layer input arrays and makes - * the necessary calls to the Map object such that that the map's - * visual state corresponds to what the user has selected in + * the necessary calls to the Map object such that that the map's + * visual state corresponds to what the user has selected in * the control. */ updateMap: function() { - // set the newly selected base layer + // set the newly selected base layer for(var i=0, len=this.baseLayers.length; i