OpenLayers OpenLayers

Changeset 5386

Show
Ignore:
Timestamp:
12/12/07 15:08:49 (1 year ago)
Author:
elemoine
Message:

removeLayer must reset layers z-index. Thanks tschaub for the review and the new patch. (closes #1090)

Files:

Legend:

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

    r5361 r5386  
    634634 
    635635    /** 
     636     * Method: resetLayersZIndex 
     637     * Reset each layer's z-index based on layer's array index 
     638     */ 
     639    resetLayersZIndex: function() { 
     640        for (var i = 0; i < this.layers.length; i++) { 
     641            var layer = this.layers[i]; 
     642            this.setLayerZIndex(layer, i); 
     643        } 
     644    }, 
     645 
     646    /** 
    636647    * APIMethod: addLayer 
    637648    * 
     
    741752            } 
    742753        } 
     754 
     755        this.resetLayersZIndex(); 
     756 
    743757        this.events.triggerEvent("removelayer"); 
    744758    }, 
  • trunk/openlayers/tests/test_Map.html

    r5361 r5386  
    603603            baseLayer: layers[0], 
    604604            layerContainerDiv: {removeChild: f}, 
    605             events: {triggerEvent: f} 
     605            events: {triggerEvent: f}, 
     606            resetLayersZIndex: function() {} 
    606607        }; 
    607608        OpenLayers.Map.prototype.removeLayer.apply(map, [map.baseLayer, false]); 
     
    637638        t.eq(map.getResolution(), layer0.resolutions[1], 
    638639             "correct resolution after removal"); 
     640    } 
     641 
     642    function test_Map_removeLayer_zindex(t) { 
     643        t.plan(2); 
     644         
     645        map = new OpenLayers.Map('map'); 
     646 
     647        var layer0 = new OpenLayers.Layer('Test Layer 0', {isBaseLayer:true}); 
     648        var layer1 = new OpenLayers.Layer('Test Layer 1', {isBaseLayer:true}); 
     649        var layer2 = new OpenLayers.Layer('Test Layer 2', {isBaseLayer:false}); 
     650 
     651        map.addLayers([layer0, layer1, layer2]); 
     652        map.removeLayer(layer0); 
     653 
     654        t.eq(parseInt(layer1.div.style.zIndex), map.Z_INDEX_BASE['BaseLayer'], 
     655             "correct z-index after removeLayer"); 
     656        t.eq(parseInt(layer2.div.style.zIndex), map.Z_INDEX_BASE['Overlay'] + 5, 
     657             "correct z-index after removeLayer"); 
    639658    } 
    640659