[Commits] r1035 - in core/trunk/geoext: lib/GeoExt/data tests/lib/GeoExt/data

commits at geoext.org commits at geoext.org
Wed Jun 10 00:09:26 CEST 2009


Author: tschaub
Date: 2009-06-10 00:09:26 +0200 (Wed, 10 Jun 2009)
New Revision: 1035

Modified:
   core/trunk/geoext/lib/GeoExt/data/ScaleStore.js
   core/trunk/geoext/tests/lib/GeoExt/data/ScaleStore.html
Log:
Making it so the ScaleStore has a record for each value in the resolutions array of the base layer.  r=ahocevar (closes #84)

Modified: core/trunk/geoext/lib/GeoExt/data/ScaleStore.js
===================================================================
--- core/trunk/geoext/lib/GeoExt/data/ScaleStore.js	2009-06-09 22:05:57 UTC (rev 1034)
+++ core/trunk/geoext/lib/GeoExt/data/ScaleStore.js	2009-06-09 22:09:26 UTC (rev 1035)
@@ -49,7 +49,9 @@
 
         GeoExt.data.ScaleStore.superclass.constructor.call(this, config);
 
-        if (map) this.bind(map);
+        if (map) {
+            this.bind(map);
+        }
     },
 
     /** api: method[bind]
@@ -104,13 +106,16 @@
      */
     populateFromMap: function() {
         var zooms = [];
+        var resolutions = this.map.baseLayer.resolutions;
+        var units = this.map.baseLayer.units;
 
-        for (var i = this.map.numZoomLevels-1; i > 0; i--) { 
-            var res = this.map.getResolutionForZoom(i);
-            var units = this.map.baseLayer.units;
-            var scale = OpenLayers.Util.getScaleFromResolution(res, units);
-
-            zooms.push({level: i, resolution: res, scale: scale});
+        for (var i=resolutions.length-1; i >= 0; i--) {
+            var res = resolutions[i];
+            zooms.push({
+                level: i,
+                resolution: res,
+                scale: OpenLayers.Util.getScaleFromResolution(res, units)
+            });
         }
 
         this.loadData(zooms);

Modified: core/trunk/geoext/tests/lib/GeoExt/data/ScaleStore.html
===================================================================
--- core/trunk/geoext/tests/lib/GeoExt/data/ScaleStore.html	2009-06-09 22:05:57 UTC (rev 1034)
+++ core/trunk/geoext/tests/lib/GeoExt/data/ScaleStore.html	2009-06-09 22:09:26 UTC (rev 1035)
@@ -45,6 +45,8 @@
             map = createMap();
             store = new GeoExt.data.ScaleStore({map: map});
             t.ok(store.map == map, "ctor sets the passed map in the instance");
+            
+            map.destroy();
         }
 
         function test_bind_unbind(t) {
@@ -84,15 +86,31 @@
             store.unbind();
             t.eq(map.events.listeners["changebaselayer"][0], undefined,
                  "unbind unregisters changebaselayer listener (map has a base layer)");
+            
+            map.destroy();
         }
 
         function test_scalestore(t) {
-            t.plan(1);
+            t.plan(3);
 
             var mapPanel = loadMapPanel();
             var map = mapPanel.map;
             var store = new GeoExt.data.ScaleStore({map: map});
-            t.eq(store.data.length, 15, 'Found expected number of zoomlevels');
+            var levels = map.baseLayer.resolutions.length;
+            t.eq(store.getCount(), levels,
+                 'Found expected number of zoomlevels: ' + levels);
+            
+            var low = store.getAt(0).get("resolution");
+            t.eq(low, map.baseLayer.resolutions[levels-1],
+                 'First record has lowest res value: ' + low);
+
+            var high = store.getAt(levels-1).get("resolution");
+            t.eq(high, map.baseLayer.resolutions[0],
+                 'Last record has highest res value: ' + high);
+            
+            map.destroy();
+            mapPanel.destroy();
+            
         }
         
     </script>



More information about the Commits mailing list