add support for specifying the GeoRSS popup size as an option to the layer.
Default behavior stays the same, but you can now specify popupSize as a layer option to the GeoRSS constructor. (Closes #883) git-svn-id: http://svn.openlayers.org/trunk/openlayers@4041 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -41,6 +41,13 @@ OpenLayers.Layer.GeoRSS = OpenLayers.Class(OpenLayers.Layer.Markers, {
|
|||||||
*/
|
*/
|
||||||
icon: null,
|
icon: null,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIProperty: popupSize
|
||||||
|
* {<OpenLayers.Size>} This determines the size of GeoRSS popups. If
|
||||||
|
* not provided, defaults to 250px by 120px.
|
||||||
|
*/
|
||||||
|
popupSize: null,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor: OpenLayers.Layer.GeoRSS
|
* Constructor: OpenLayers.Layer.GeoRSS
|
||||||
* Create a GeoRSS Layer.
|
* Create a GeoRSS Layer.
|
||||||
@@ -171,7 +178,8 @@ OpenLayers.Layer.GeoRSS = OpenLayers.Class(OpenLayers.Layer.Markers, {
|
|||||||
data.icon = this.icon == null ?
|
data.icon = this.icon == null ?
|
||||||
OpenLayers.Marker.defaultIcon() :
|
OpenLayers.Marker.defaultIcon() :
|
||||||
this.icon.clone();
|
this.icon.clone();
|
||||||
data.popupSize = new OpenLayers.Size(250, 120);
|
|
||||||
|
data.popupSize = this.popupSize ? this.popupSize.clone() : new OpenLayers.Size(250, 120);
|
||||||
if ((title != null) && (description != null)) {
|
if ((title != null) && (description != null)) {
|
||||||
contentHTML = '<div class="olLayerGeoRSSClose">[x]</div>';
|
contentHTML = '<div class="olLayerGeoRSSClose">[x]</div>';
|
||||||
contentHTML += '<div class="olLayerGeoRSSTitle">';
|
contentHTML += '<div class="olLayerGeoRSSTitle">';
|
||||||
|
|||||||
@@ -80,6 +80,56 @@
|
|||||||
t.eq(map.popups.length, 1, "1st popup gone, 2nd Popup opened correctly");
|
t.eq(map.popups.length, 1, "1st popup gone, 2nd Popup opened correctly");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
function test_Layer_GeoRSS_popups (t) {
|
||||||
|
t.plan( 8 );
|
||||||
|
layer = new OpenLayers.Layer.GeoRSS('Test Layer', georss_txt);
|
||||||
|
var map = new OpenLayers.Map('map');
|
||||||
|
var baseLayer = new OpenLayers.Layer.WMS("Test Layer",
|
||||||
|
"http://octo.metacarta.com/cgi-bin/mapserv?",
|
||||||
|
{map: "/mapdata/vmap_wms.map", layers: "basic"});
|
||||||
|
map.addLayer(baseLayer);
|
||||||
|
map.addLayer(layer);
|
||||||
|
map.setCenter(new OpenLayers.LonLat(0,0),0);
|
||||||
|
var event = {};
|
||||||
|
t.delay_call( 1, function() {
|
||||||
|
t.ok(layer.markers[0].events, "First marker has an events object");
|
||||||
|
t.eq(layer.markers[0].events.listeners['click'].length, 1, "Marker events has one object");
|
||||||
|
layer.markers[0].events.triggerEvent('click', event);
|
||||||
|
t.eq(map.popups.length, 1, "Popup opened correctly");
|
||||||
|
t.eq(map.popups[0].size.w, 250, "Popup sized correctly x");
|
||||||
|
t.eq(map.popups[0].size.h, 120, "Popup sized correctly y");
|
||||||
|
layer.markers[1].events.triggerEvent('click', event);
|
||||||
|
t.eq(map.popups.length, 1, "1st popup gone, 2nd Popup opened correctly");
|
||||||
|
t.eq(map.popups[0].size.w, 250, "Popup sized correctly x");
|
||||||
|
t.eq(map.popups[0].size.h, 120, "Popup sized correctly y");
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
function test_Layer_GeoRSS_resizedPopups(t) {
|
||||||
|
layer = new OpenLayers.Layer.GeoRSS('Test Layer', georss_txt, {'popupSize': new OpenLayers.Size(200,100)});
|
||||||
|
t.plan( 8 );
|
||||||
|
var map = new OpenLayers.Map('map');
|
||||||
|
var baseLayer = new OpenLayers.Layer.WMS("Test Layer",
|
||||||
|
"http://octo.metacarta.com/cgi-bin/mapserv?",
|
||||||
|
{map: "/mapdata/vmap_wms.map", layers: "basic"});
|
||||||
|
map.addLayer(baseLayer);
|
||||||
|
map.addLayer(layer);
|
||||||
|
map.setCenter(new OpenLayers.LonLat(0,0),0);
|
||||||
|
var event = {};
|
||||||
|
t.delay_call( 1, function() {
|
||||||
|
t.ok(layer.markers[0].events, "First marker has an events object");
|
||||||
|
t.eq(layer.markers[0].events.listeners['click'].length, 1, "Marker events has one object");
|
||||||
|
layer.markers[0].events.triggerEvent('click', event);
|
||||||
|
t.eq(map.popups.length, 1, "Popup opened correctly");
|
||||||
|
t.eq(map.popups[0].size.w, 200, "Popup sized correctly x");
|
||||||
|
t.eq(map.popups[0].size.h, 100, "Popup sized correctly y");
|
||||||
|
map.popups[0].size.w=300;
|
||||||
|
layer.markers[1].events.triggerEvent('click', event);
|
||||||
|
t.eq(map.popups.length, 1, "1st popup gone, 2nd Popup opened correctly");
|
||||||
|
t.eq(map.popups[0].size.w, 200, "Popup sized correctly x");
|
||||||
|
t.eq(map.popups[0].size.h, 100, "Popup sized correctly y");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function test_04_Layer_GeoRSS_icon(t) {
|
function test_04_Layer_GeoRSS_icon(t) {
|
||||||
t.plan( 3 );
|
t.plan( 3 );
|
||||||
|
|||||||
Reference in New Issue
Block a user