[Commits] r2171 - core/trunk/geoext/lib/GeoExt/data
commits at geoext.org
commits at geoext.org
Tue May 11 12:51:28 CEST 2010
Author: pgiraud
Date: 2010-05-11 12:51:28 +0200 (Tue, 11 May 2010)
New Revision: 2171
Modified:
core/trunk/geoext/lib/GeoExt/data/AttributeStore.js
Log:
avoid several (re)drawFeature calls when modifying several attributes in a feature at once, r=elemoine,fredj, (Closes #274)
Modified: core/trunk/geoext/lib/GeoExt/data/AttributeStore.js
===================================================================
--- core/trunk/geoext/lib/GeoExt/data/AttributeStore.js 2010-05-11 08:03:51 UTC (rev 2170)
+++ core/trunk/geoext/lib/GeoExt/data/AttributeStore.js 2010-05-11 10:51:28 UTC (rev 2171)
@@ -118,28 +118,29 @@
*/
updateFeature: function(records) {
var feature = this.feature, layer = feature.layer;
- var record, name, value, oldValue, cont;
- for(var i=0,len=records.length; i<len; i++) {
+ var i, len, record, name, value, oldValue, dirty;
+ for(i=0,len=records.length; i<len; i++) {
record = records[i];
name = record.get("name");
value = record.get("value");
oldValue = feature.attributes[name];
if(oldValue !== value) {
- cont = true;
- if(layer && layer.events) {
- cont = layer.events.triggerEvent(
- "beforefeaturemodified", {feature: feature});
- }
- if(cont !== false) {
- feature.attributes[name] = value;
- if(layer && layer.events) {
- layer.events.triggerEvent(
- "featuremodified", {feature: feature});
- layer.drawFeature(feature);
- }
- }
+ dirty = true;
}
}
+ if(dirty && layer && layer.events &&
+ layer.events.triggerEvent("beforefeaturemodified",
+ {feature: feature}) !== false) {
+ for(i=0,len=records.length; i<len; i++) {
+ record = records[i];
+ name = record.get("name");
+ value = record.get("value");
+ feature.attributes[name] = value;
+ }
+ layer.events.triggerEvent(
+ "featuremodified", {feature: feature});
+ layer.drawFeature(feature);
+ }
}
};
More information about the Commits
mailing list