Files
openlayers/tests/Layer/Vector/RootContainer.html
ahocevar cc2e19d789 added support for text labels. This also adds getCentroid methods to all
geometries. Thanks crschmidt for the great help with this patch, and 
thanks to camptocamp for the initial work on this and rcoup for creating 
the first patches. r=crschmidt (closes #1895)


git-svn-id: http://svn.openlayers.org/trunk/openlayers@9262 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
2009-04-10 16:05:26 +00:00

64 lines
2.4 KiB
HTML

<html>
<head>
<script src="../../../lib/OpenLayers.js"></script>
<script type="text/javascript">
var layer, map;
function test_RootContainer_collectResetRoots(t) {
map = new OpenLayers.Map("map");
var layer1 = new OpenLayers.Layer.Vector("layer1");
var layer2 = new OpenLayers.Layer.Vector("layer2");
layer = new OpenLayers.Layer.Vector.RootContainer("layer_1_2", {
layers: [layer1, layer2]
});
// we cannot test this with a renderer that does not hava a rendererRoot
var plan = layer.renderer.rendererRoot ? 4 : 0;
t.plan(plan);
if(plan == 0) {
return;
}
var numRoots = layer.renderer.rendererRoot.childNodes.length;
// addLayers will call setMap() for layer, which will call collectRoots()
map.addLayers([layer1, layer2, layer]);
t.eq(layer.renderer.rendererRoot.childNodes.length, numRoots * 3, "layer has correct number of renderer roots");
t.eq(layer1.renderer.rendererRoot.childNodes.length, 0, "layer1 has no own renderer root");
layer.resetRoots();
t.eq(layer.renderer.rendererRoot.childNodes.length, numRoots, "roots removed from container");
t.eq(layer1.renderer.rendererRoot.childNodes.length, numRoots, "root re-added to original layer");
}
function test_RootContainer_getFeatureFromEvent(t) {
t.plan(2);
var map = new OpenLayers.Map("map");
var layer1 = new OpenLayers.Layer.Vector("layer1");
var layer2 = new OpenLayers.Layer.Vector("layer2");
layer = new OpenLayers.Layer.Vector.RootContainer("layer_1_2", {
layers: [layer1, layer2]
});
map.addLayers([layer1, layer2, layer]);
var feature1 = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(0,1));
var feature2 = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(1,0));
layer1.addFeatures(feature1);
layer2.addFeatures(feature2);
t.eq(layer.getFeatureFromEvent({
srcElement: {
_featureId: feature1.id
}
}).id, feature1.id, "feature from layer1 found");
t.eq(layer.getFeatureFromEvent({srcElement: {
_featureId: feature2.id
}}).id, feature2.id, "feature from layer2 found");
}
</script>
</head>
<body>
<div id="map" style="width:500px;height:550px"></div>
</body>
</html>