OpenLayers OpenLayers

Changeset 5509

Show
Ignore:
Timestamp:
12/19/07 10:00:49 (1 year ago)
Author:
fredj
Message:

OpenLayers.Layer.Markers - propagate layer's opacity to the markers. Thanks
ahughes for the bug report and crschmidt for review and advices. (Closes #1114)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/openlayers/lib/OpenLayers/Layer.js

    r5441 r5509  
    2929     */ 
    3030    div: null, 
     31 
     32    /** 
     33     * Property: opacity 
     34     * {Float} The layer's opacity. Float number between 0.0 and 1.0. 
     35     */ 
     36    opacity: null, 
    3137 
    3238    /**  
  • trunk/openlayers/lib/OpenLayers/Layer/Markers.js

    r5028 r5509  
    5858    }, 
    5959 
    60      
     60    /** 
     61     * APIMethod: setOpacity 
     62     * Sets the opacity for all the markers. 
     63     *  
     64     * Parameter: 
     65     * opacity - {Float} 
     66     */ 
     67    setOpacity: function(opacity) { 
     68        if (opacity != this.opacity) { 
     69            this.opacity = opacity; 
     70            for (var i = 0; i < this.markers.length; i++) { 
     71                this.markers[i].setOpacity(this.opacity); 
     72            } 
     73        } 
     74    }, 
     75 
    6176    /**  
    6277     * Method: moveTo 
     
    86101    addMarker: function(marker) { 
    87102        this.markers.push(marker); 
     103 
     104        if (this.opacity != null) { 
     105            marker.setOpacity(this.opacity); 
     106        } 
     107 
    88108        if (this.map && this.map.getExtent()) { 
    89109            marker.map = this.map; 
  • trunk/openlayers/tests/Layer/test_Markers.html

    r4059 r5509  
    7878    } 
    7979 
     80    function test_Layer_Markers_setOpacity(t) { 
     81        t.plan(1); 
     82 
     83        layer = new OpenLayers.Layer.Markers('Test Layer'); 
     84 
     85        var opacity = 0.1234; 
     86         
     87        for (var i = 0; i < 12; i++) { 
     88            layer.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0), new OpenLayers.Icon())); 
     89        } 
     90 
     91        layer.setOpacity(opacity); 
     92 
     93        for (var i = 0; i < 4; i++) { 
     94            layer.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0), new OpenLayers.Icon())); 
     95        } 
     96         
     97        var itWorks = false; 
     98        for (var i = 0; i < layer.markers.length; i++) { 
     99            itWorks = parseFloat(layer.markers[i].icon.imageDiv.style.opacity) == opacity; 
     100            if (!itWorks) { 
     101                break; 
     102            } 
     103        } 
     104        t.ok(itWorks, "setOpacity change markers opacity"); 
     105    } 
    80106 
    81107  </script>