[Commits] r334 - in sandbox/opengeo/geoexplorer: . lib/GeoExt/data tests/lib/GeoExt/data
commits at geoext.org
commits at geoext.org
Thu Apr 2 22:48:43 CEST 2009
Author: tschaub
Date: 2009-04-02 22:48:43 +0200 (Thu, 02 Apr 2009)
New Revision: 334
Modified:
sandbox/opengeo/geoexplorer/lib/GeoExt/data/LayerStore.js
sandbox/opengeo/geoexplorer/modifications.txt
sandbox/opengeo/geoexplorer/tests/lib/GeoExt/data/LayerStore.html
Log:
Fixing the layer store add method (see #36).
Modified: sandbox/opengeo/geoexplorer/lib/GeoExt/data/LayerStore.js
===================================================================
--- sandbox/opengeo/geoexplorer/lib/GeoExt/data/LayerStore.js 2009-04-02 20:47:14 UTC (rev 333)
+++ sandbox/opengeo/geoexplorer/lib/GeoExt/data/LayerStore.js 2009-04-02 20:48:43 UTC (rev 334)
@@ -136,10 +136,12 @@
* evt - {Object}
*/
onAddLayer: function(evt) {
- var layer = evt.layer;
- this._adding = true;
- this.add((this.reader.readRecords([layer])).records);
- delete this._adding;
+ if(!this._adding) {
+ var layer = evt.layer;
+ this._adding = true;
+ this.add((this.reader.readRecords([layer])).records);
+ delete this._adding;
+ }
},
/**
@@ -150,10 +152,12 @@
* evt - {Object}
*/
onRemoveLayer: function(evt){
- var layer = evt.layer;
- this._removing = true;
- this.remove(this.getById(layer.id));
- delete this._removing;
+ if(!this._removing) {
+ var layer = evt.layer;
+ this._removing = true;
+ this.remove(this.getById(layer.id));
+ delete this._removing;
+ }
},
/**
@@ -167,9 +171,11 @@
*/
onAdd: function(store, records, index) {
if(!this._adding) {
+ this._adding = true;
for(var i=0; i<records.length; ++i) {
this.map.addLayer(records[i].get("layer"));
}
+ delete this._adding;
}
},
@@ -184,7 +190,9 @@
*/
onRemove: function(store, record, index){
if(!this._removing) {
+ this._removing = true;
this.map.removeLayer(record.get("layer"));
+ delete this._removing;
}
}
};
Modified: sandbox/opengeo/geoexplorer/modifications.txt
===================================================================
--- sandbox/opengeo/geoexplorer/modifications.txt 2009-04-02 20:47:14 UTC (rev 333)
+++ sandbox/opengeo/geoexplorer/modifications.txt 2009-04-02 20:48:43 UTC (rev 334)
@@ -7,5 +7,6 @@
* Added examples of grid using WMSCapabilitiesStore (see #9)
* Clone feature and layer in record.clone (see #34)
* Set allOverlays in MapPanel (see #35)
+ * Take care not to add records twice in LayerStore (see #36)
* Merge changes from trunk up to r319
Modified: sandbox/opengeo/geoexplorer/tests/lib/GeoExt/data/LayerStore.html
===================================================================
--- sandbox/opengeo/geoexplorer/tests/lib/GeoExt/data/LayerStore.html 2009-04-02 20:47:14 UTC (rev 333)
+++ sandbox/opengeo/geoexplorer/tests/lib/GeoExt/data/LayerStore.html 2009-04-02 20:48:43 UTC (rev 334)
@@ -1,9 +1,9 @@
<!DOCTYPE html>
<html debug="true">
<head>
- <script type="text/javascript" src="../../../../../../openlayers/lib/OpenLayers.js"></script>
- <script type="text/javascript" src="../../../../../../ext/2.2.1/adapter/ext/ext-base.js"></script>
- <script type="text/javascript" src="../../../../../../ext/2.2.1/ext-all-debug.js"></script>
+ <script type="text/javascript" src="../../../../../openlayers/lib/OpenLayers.js"></script>
+ <script type="text/javascript" src="../../../../../ext/adapter/ext/ext-base.js"></script>
+ <script type="text/javascript" src="../../../../../ext/ext-all-debug.js"></script>
<script type="text/javascript" src="../../../../lib/GeoExt.js"></script>
<script type="text/javascript">
@@ -73,6 +73,27 @@
t.eq(map.layers.length,1,"Adding layer to MapPanel's LayerStore adds only one layer to map");
t.eq(mapPanel.layers.getCount(),1,"Adding layers to MapPanel's LayerStore does not create duplicate layers");
}
+
+ function test_add_remove(t) {
+
+ t.plan(2);
+
+ var map = new OpenLayers.Map("mappanel");
+ var store = new GeoExt.data.LayerStore({
+ map: map
+ });
+ var record = new GeoExt.data.LayerRecord({
+ layer: new OpenLayers.Layer.Vector()
+ });
+
+ store.add([record]);
+ t.eq(store.getCount(), 1, "adding a single record to the store adds one record");
+
+ store.remove(record);
+ t.eq(store.getCount(), 0, "removing a single record from the store removes one record");
+
+ }
+
</script>
<body>
<div id="mappanel"></div>
More information about the Commits
mailing list