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:
@@ -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
|
||||
|
||||
@@ -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();
|
||||
},
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user