Renderer: give featureId to eraseGeometry function, r=fredj (closes #2693)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@10435 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
bartvde
2010-06-30 10:49:06 +00:00
parent e643531a0a
commit 20a4025af0
3 changed files with 11 additions and 19 deletions

View File

@@ -265,8 +265,9 @@ OpenLayers.Renderer = OpenLayers.Class({
features = [features];
}
for(var i=0, len=features.length; i<len; ++i) {
this.eraseGeometry(features[i].geometry);
this.removeText(features[i].id);
var feature = features[i];
this.eraseGeometry(feature.geometry, feature.id);
this.removeText(feature.id);
}
},
@@ -277,8 +278,9 @@ OpenLayers.Renderer = OpenLayers.Class({
*
* Parameters:
* geometry - {<OpenLayers.Geometry>}
* featureId - {String}
*/
eraseGeometry: function(geometry) {},
eraseGeometry: function(geometry, featureId) {},
/**
* Method: moveRoot

View File

@@ -27,14 +27,6 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
*/
features: null,
/**
* Property: geometryMap
* {Object} Geometry -> Feature lookup table. Used by eraseGeometry to
* lookup features to remove from our internal table (this.features)
* when erasing geoms.
*/
geometryMap: null,
/**
* Constructor: OpenLayers.Renderer.Canvas
*
@@ -47,7 +39,6 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
this.container.appendChild(this.root);
this.canvas = this.root.getContext("2d");
this.features = {};
this.geometryMap = {};
},
/**
@@ -58,9 +49,10 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
*
* Parameters:
* geometry - {<OpenLayers.Geometry>}
* featureId - {String}
*/
eraseGeometry: function(geometry) {
this.eraseFeatures(this.features[this.geometryMap[geometry.id]][0]);
eraseGeometry: function(geometry, featureId) {
this.eraseFeatures(this.features[featureId][0]);
},
/**
@@ -122,9 +114,6 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
style = this.applyDefaultSymbolizer(style);
this.features[feature.id] = [feature, style];
if (feature.geometry) {
this.geometryMap[feature.geometry.id] = feature.id;
}
this.redraw();
},

View File

@@ -855,14 +855,15 @@ OpenLayers.Renderer.Elements = OpenLayers.Class(OpenLayers.Renderer, {
*
* Parameters:
* geometry - {<OpenLayers.Geometry>}
* featureId - {String}
*/
eraseGeometry: function(geometry) {
eraseGeometry: function(geometry, featureId) {
if ((geometry.CLASS_NAME == "OpenLayers.Geometry.MultiPoint") ||
(geometry.CLASS_NAME == "OpenLayers.Geometry.MultiLineString") ||
(geometry.CLASS_NAME == "OpenLayers.Geometry.MultiPolygon") ||
(geometry.CLASS_NAME == "OpenLayers.Geometry.Collection")) {
for (var i=0, len=geometry.components.length; i<len; i++) {
this.eraseGeometry(geometry.components[i]);
this.eraseGeometry(geometry.components[i], featureId);
}
} else {
var element = OpenLayers.Util.getElement(geometry.id);