OpenLayers OpenLayers

Changeset 7381

Show
Ignore:
Timestamp:
06/19/08 14:44:25 (2 months ago)
Author:
crschmidt
Message:

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.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/openlayers/examples/controls.html

    r7095 r7381  
    55        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" /> 
    66        <link rel="stylesheet" href="style.css" type="text/css" /> 
     7    <link rel="stylesheet" type="text/css" href="http://www.extjs.com/deploy/dev//resources/css/ext-all.css"> 
     8 
     9    <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> </script><script type="text/javascript">_uacct = "UA-1396058-1";urchinTracker();</script> 
     10    <link rel="stylesheet" type="text/css" href="http://www.extjs.com/deploy/dev//resources/css/xtheme-default.css" /><!-- LIBS --> 
     11    <script type="text/javascript" src="http://www.extjs.com/deploy/dev//adapter/ext/ext-base.js"></script> 
     12    <!-- ENDLIBS --> 
     13 
     14    <script type="text/javascript" src="http://www.extjs.com/deploy/dev//ext-all.js"></script> 
     15 
     16    <!-- Common Styles for the examples --> 
     17    <link rel="stylesheet" type="text/css" href="../shared/examples.css"> 
    718        <script src="../lib/OpenLayers.js"></script> 
    819        <script type="text/javascript"> 
    920            var map; 
     21            function layerRenderAdditional(layerDiv, layer) { 
     22                var sliderDiv = document.createElement("div"); 
     23                sliderDiv.className = "olControlLayerSwitcherLayerDivSlider"; 
     24                layerDiv.appendChild(sliderDiv);     
     25                sliderDiv.style.height="20px"; 
     26                var sliderValue = layer.opacity == null ? 100 : layer.opacity * 100; 
     27                var slider = new Ext.Slider({renderTo: sliderDiv, width: 100, minValue: 0, maxValue: 100, animate: false}); 
     28                slider.on("change", function(slider, newValue) { 
     29                    this.layer.setOpacity(newValue/100); 
     30                }, {layer: layer, control: this});  
     31                slider.on("dragstart", function(slider, e) {  
     32                    this.control.isMouseDown = false;  
     33                }, {control: this});   
     34                if (this.maximizeDiv.style.display != "none") {  
     35                    this.maximizeControl(); 
     36                    slider.setValue(sliderValue); 
     37                    this.minimizeControl(); 
     38                } else { 
     39                    slider.setValue(sliderValue); 
     40                } 
     41            } 
    1042            function init(){ 
    1143                map = new OpenLayers.Map('map', { 
     
    1345                        new OpenLayers.Control.PanZoomBar(), 
    1446                        new OpenLayers.Control.MouseToolbar(), 
    15                         new OpenLayers.Control.LayerSwitcher({'ascending':false}), 
     47                        new OpenLayers.Control.LayerSwitcher({'ascending':false, layerRenderAdditional: layerRenderAdditional}), 
    1648                        new OpenLayers.Control.Permalink(), 
    1749                        new OpenLayers.Control.ScaleLine(), 
  • trunk/openlayers/lib/OpenLayers/Control/LayerSwitcher.js

    r6313 r7381  
    255255        }     
    256256 
     257        this.layerDivList = [];      
    257258        var layers = this.map.layers.slice(); 
    258259        if (!this.ascending) { layers.reverse(); } 
     
    274275                                          : layer.getVisibility(); 
    275276     
     277                var layerDiv = document.createElement("div");  
     278                layerDiv.id = this.id+"_layerDiv_"+layer.id; 
     279                layerDiv.className = "olControlLayerSwitcherLayerDiv"; 
     280 
    276281                // create input element 
    277282                var inputElem = document.createElement("input"); 
     
    308313                                                            context) 
    309314                ); 
    310                 // create line break 
    311                 var br = document.createElement("br"); 
    312      
    313315                 
    314316                var groupArray = (baseLayer) ? this.baseLayers 
     
    320322                }); 
    321323                                                      
    322      
     324          
    323325                var groupDiv = (baseLayer) ? this.baseLayersDiv 
    324326                                           : this.dataLayersDiv; 
    325                 groupDiv.appendChild(inputElem); 
    326                 groupDiv.appendChild(labelSpan); 
    327                 groupDiv.appendChild(br); 
     327                 
     328                layerDiv.appendChild(inputElem); 
     329                layerDiv.appendChild(labelSpan); 
     330                this.layerDivList.push(layerDiv); 
     331                groupDiv.appendChild(layerDiv); 
     332                 
     333                this.layerRenderAdditional(layerDiv, layer);  
    328334            } 
    329335        } 
     
    335341        this.baseLbl.style.display = (containsBaseLayers) ? "" : "none";         
    336342 
     343         
    337344        return this.div; 
    338345    }, 
    339  
     346     
     347    layerRenderAdditional: function(layerDiv, layer) { 
     348    }, 
     349     
    340350    /**  
    341351     * Method: