OpenLayers OpenLayers

Changeset 2820

Show
Ignore:
Timestamp:
03/19/07 16:52:17 (2 years ago)
Author:
sderle
Message:

Don't display a popup or register events on a Text layer that doesn't have both title and description. Fixes #471.

Files:

Legend:

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

    r2030 r2820  
    127127                      this.features.push(feature); 
    128128                      var marker = feature.createMarker(); 
    129                       marker.events.register('click', feature, this.markerClick); 
     129                      if ((title != null) && (description != null)) { 
     130                        marker.events.register('click', feature, this.markerClick); 
     131                      } 
    130132                      this.addMarker(marker); 
    131133                    } 
  • trunk/openlayers/tests/Layer/test_Text.html

    r2803 r2820  
    4848    function test_03_Layer_Text_events (t) { 
    4949        t.plan( 4 );     
    50         layer = new OpenLayers.Layer.Text('Test Layer', { location: 'data_Layer_Text_textfile.txt'}); 
     50        layer = new OpenLayers.Layer.Text('Test Layer', { location: 'data_Layer_Text_textfile_2.txt'}); 
    5151        var map = new OpenLayers.Map('map'); 
    5252        var baseLayer = new OpenLayers.Layer.WMS("Test Layer",  
     
    6464          layer.markers[1].events.triggerEvent('click', event); 
    6565          t.eq(map.popups.length, 1, "1st popup gone, 2nd Popup opened correctly"); 
     66        }); 
     67    } 
     68    function test_04_Layer_Text_events_nopopups (t) { 
     69        t.plan( 4 );     
     70        layer = new OpenLayers.Layer.Text('Test Layer', { location: 'data_Layer_Text_textfile.txt'}); 
     71        var map = new OpenLayers.Map('map'); 
     72        var baseLayer = new OpenLayers.Layer.WMS("Test Layer",  
     73            "http://octo.metacarta.com/cgi-bin/mapserv?", 
     74            {map: "/mapdata/vmap_wms.map", layers: "basic"}); 
     75        map.addLayer(baseLayer); 
     76        map.addLayer(layer); 
     77        map.setCenter(new OpenLayers.LonLat(0,0),0); 
     78        var event = {}; 
     79        t.delay_call( 1, function() {   
     80          t.ok(layer.markers[0].events, "First marker has an events object"); 
     81          t.eq(layer.markers[0].events.listeners['click'].length, 0, "Marker events has one object"); 
     82          layer.markers[0].events.triggerEvent('click', event); 
     83          t.eq(map.popups.length, 0, "no popup on first marker"); 
     84          layer.markers[1].events.triggerEvent('click', event); 
     85          t.eq(map.popups.length, 0, "no popup on second marker"); 
    6686        }); 
    6787    }