Ticket #577: layerswitcherMem.patch
| File layerswitcherMem.patch, 2.7 kB (added by euzuro, 2 years ago) |
|---|
-
lib/OpenLayers/Control/LayerSwitcher.js
old new 128 128 inputElem.value = layer.name; 129 129 inputElem.checked = checked; 130 130 inputElem.defaultChecked = checked; 131 inputElem.layer = layer;132 inputElem.control = this;133 131 134 132 if (!baseLayer && !layer.inRange) { 135 133 inputElem.disabled = true; 136 134 } 135 var context = { 136 'inputElem': inputElem, 137 'layer': layer, 138 'layerSwitcher': this 139 } 137 140 OpenLayers.Event.observe(inputElem, "mouseup", 138 this.onInputClick.bindAsEventListener( inputElem));141 this.onInputClick.bindAsEventListener(context)); 139 142 140 143 // create span 141 144 var labelSpan = document.createElement("span"); … … 143 146 labelSpan.style.color = "gray"; 144 147 } 145 148 labelSpan.innerHTML = layer.name; 146 labelSpan.style.verticalAlign = (baseLayer) ? "bottom" : "baseline"; 149 labelSpan.style.verticalAlign = (baseLayer) ? "bottom" 150 : "baseline"; 147 151 OpenLayers.Event.observe(labelSpan, "click", 148 this.onInputClick.bindAsEventListener( inputElem));152 this.onInputClick.bindAsEventListener(context)); 149 153 // create line break 150 154 var br = document.createElement("br"); 151 155 … … 173 177 * 174 178 * @private 175 179 * 180 * @context 181 * {DOMElement} inputElem 182 * {OpenLayers.Control.LayerSwitcher} layerSwitcher 183 * {OpenLayers.Layer} layer 184 * 176 185 * @param {Event} e 177 186 */ 178 187 179 188 onInputClick: function(e) { 180 if (!this.disabled) { 181 if (this.type == "radio") { 182 this.checked = true; 189 190 if (!this.inputElem.disabled) { 191 if (this.inputElem.type == "radio") { 192 this.inputElem.checked = true; 183 193 this.layer.map.setBaseLayer(this.layer, true); 184 194 this.layer.map.events.triggerEvent("changebaselayer"); 185 195 } else { 186 this. checked = !this.checked;187 this. control.updateMap();196 this.inputElem.checked = !this.checked; 197 this.layerSwitcher.updateMap(); 188 198 } 189 199 } 190 200 OpenLayers.Event.stop(e);
