Batch merge for rc2 of 2.7. 'svn merge -r7967:HEAD from trunk (Closes #1733) (Closes #1489) (Closes #1639) (Closes #1718) (Closes #1723) (Closes #1732) (Closes #1616) (Closes #1722)
git-svn-id: http://svn.openlayers.org/branches/openlayers/2.7@8012 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -38,7 +38,12 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
|
||||
* Supported map event types (in addition to those from <OpenLayers.Layer>):
|
||||
* - *beforefeatureadded* Triggered before a feature is added. Listeners
|
||||
* will receive an object with a *feature* property referencing the
|
||||
* feature to be added.
|
||||
* feature to be added. To stop the feature from being added, a
|
||||
* listener should return false.
|
||||
* - *beforefeaturesadded* Triggered before an array of features is added.
|
||||
* Listeners will receive an object with a *features* property
|
||||
* referencing the feature to be added. To stop the features from
|
||||
* being added, a listener should return false.
|
||||
* - *featureadded* Triggered after a feature is added. The event
|
||||
* object passed to listeners will have a *feature* property with a
|
||||
* reference to the added feature.
|
||||
@@ -72,7 +77,8 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
|
||||
* - *refresh* Triggered when something wants a strategy to ask the protocol
|
||||
* for a new set of features.
|
||||
*/
|
||||
EVENT_TYPES: ["beforefeatureadded", "featureadded", "featuresadded",
|
||||
EVENT_TYPES: ["beforefeatureadded", "beforefeaturesadded",
|
||||
"featureadded", "featuresadded",
|
||||
"beforefeatureremoved", "featureremoved", "featuresremoved",
|
||||
"beforefeatureselected", "featureselected", "featureunselected",
|
||||
"beforefeaturemodified", "featuremodified", "afterfeaturemodified",
|
||||
@@ -407,19 +413,14 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
|
||||
}
|
||||
|
||||
if(!zoomChanged && coordSysUnchanged) {
|
||||
var unrenderedFeatures = {};
|
||||
for(var i in this.unrenderedFeatures) {
|
||||
var feature = this.unrenderedFeatures[i];
|
||||
if(!this.drawFeature(feature)) {
|
||||
unrenderedFeatures[i] = feature;
|
||||
}
|
||||
this.drawFeature(feature);
|
||||
}
|
||||
this.unrenderedFeatures = unrenderedFeatures;
|
||||
}
|
||||
}
|
||||
|
||||
if (!this.drawn || zoomChanged || !coordSysUnchanged) {
|
||||
this.unrenderedFeatures = {};
|
||||
this.drawn = true;
|
||||
var feature;
|
||||
for(var i=0, len=this.features.length; i<len; i++) {
|
||||
@@ -429,9 +430,7 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
|
||||
this.renderer.locked = false;
|
||||
}
|
||||
feature = this.features[i];
|
||||
if (!this.drawFeature(feature)) {
|
||||
this.unrenderedFeatures[feature.id] = feature;
|
||||
};
|
||||
this.drawFeature(feature);
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -450,6 +449,15 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
|
||||
}
|
||||
|
||||
var notify = !options || !options.silent;
|
||||
if(notify) {
|
||||
var event = {features: features};
|
||||
var ret = this.events.triggerEvent("beforefeaturesadded", event);
|
||||
if(ret === false) {
|
||||
return;
|
||||
}
|
||||
features = event.features;
|
||||
}
|
||||
|
||||
|
||||
for (var i=0, len=features.length; i<len; i++) {
|
||||
if (i != (features.length - 1)) {
|
||||
@@ -476,16 +484,15 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
|
||||
}
|
||||
|
||||
if (notify) {
|
||||
this.events.triggerEvent("beforefeatureadded", {
|
||||
feature: feature
|
||||
});
|
||||
if(this.events.triggerEvent("beforefeatureadded",
|
||||
{feature: feature}) === false) {
|
||||
continue;
|
||||
};
|
||||
this.preFeatureInsert(feature);
|
||||
}
|
||||
|
||||
if (this.drawn) {
|
||||
if(!this.drawFeature(feature)) {
|
||||
this.unrenderedFeatures[feature.id] = feature;
|
||||
}
|
||||
this.drawFeature(feature);
|
||||
}
|
||||
|
||||
if (notify) {
|
||||
@@ -603,10 +610,6 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
|
||||
* Parameters:
|
||||
* feature - {<OpenLayers.Feature.Vector>}
|
||||
* style - {Object} Symbolizer hash or {String} renderIntent
|
||||
*
|
||||
* Returns:
|
||||
* {Boolean} true if the renderer was able to draw the feature, false
|
||||
* otherwise
|
||||
*/
|
||||
drawFeature: function(feature, style) {
|
||||
if (typeof style != "object") {
|
||||
@@ -618,7 +621,11 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
|
||||
}
|
||||
}
|
||||
|
||||
return this.renderer.drawFeature(feature, style);
|
||||
if (!this.renderer.drawFeature(feature, style)) {
|
||||
this.unrenderedFeatures[feature.id] = feature;
|
||||
} else {
|
||||
delete this.unrenderedFeatures[feature.id];
|
||||
};
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user