[OpenLayers-Commits] r7303 - in sandbox/vector-behavior: lib/OpenLayers lib/OpenLayers/Control lib/OpenLayers/Feature lib/OpenLayers/Lang lib/OpenLayers/Layer tests tests/Feature tests/Layer

commits at openlayers.org commits at openlayers.org
Tue Jun 3 04:03:49 EDT 2008


Author: elemoine
Date: 2008-06-03 04:03:49 -0400 (Tue, 03 Jun 2008)
New Revision: 7303

Added:
   sandbox/vector-behavior/lib/OpenLayers/Lang/sv-SE.js
Modified:
   sandbox/vector-behavior/lib/OpenLayers/Control/Permalink.js
   sandbox/vector-behavior/lib/OpenLayers/Feature/Vector.js
   sandbox/vector-behavior/lib/OpenLayers/Layer/Google.js
   sandbox/vector-behavior/lib/OpenLayers/Layer/Grid.js
   sandbox/vector-behavior/lib/OpenLayers/Layer/Vector.js
   sandbox/vector-behavior/lib/OpenLayers/Util.js
   sandbox/vector-behavior/tests/Feature/Vector.html
   sandbox/vector-behavior/tests/Layer/Vector.html
   sandbox/vector-behavior/tests/Util.html
Log:
merge -r 7240:HEAD trunk/openlayers


Modified: sandbox/vector-behavior/lib/OpenLayers/Control/Permalink.js
===================================================================
--- sandbox/vector-behavior/lib/OpenLayers/Control/Permalink.js	2008-06-03 06:31:15 UTC (rev 7302)
+++ sandbox/vector-behavior/lib/OpenLayers/Control/Permalink.js	2008-06-03 08:03:49 UTC (rev 7303)
@@ -5,6 +5,7 @@
 
 /**
  * @requires OpenLayers/Control.js
+ * @requires OpenLayers/Control/ArgParser.js
  */
 
 /**

Modified: sandbox/vector-behavior/lib/OpenLayers/Feature/Vector.js
===================================================================
--- sandbox/vector-behavior/lib/OpenLayers/Feature/Vector.js	2008-06-03 06:31:15 UTC (rev 7302)
+++ sandbox/vector-behavior/lib/OpenLayers/Feature/Vector.js	2008-06-03 08:03:49 UTC (rev 7303)
@@ -80,7 +80,7 @@
         OpenLayers.Feature.prototype.initialize.apply(this,
                                                       [null, null, attributes]);
         this.lonlat = null;
-        this.geometry = geometry;
+        this.geometry = geometry ? geometry : null;
         this.state = null;
         this.attributes = {};
         if (attributes) {
@@ -113,9 +113,10 @@
      * {<OpenLayers.Feature.Vector>} An exact clone of this vector feature.
      */
     clone: function () {
-        return new OpenLayers.Feature.Vector(this.geometry.clone(),
-                                             this.attributes,
-                                             this.style);
+        return new OpenLayers.Feature.Vector(
+            this.geometry ? this.geometry.clone() : null,
+            this.attributes,
+            this.style);
     },
 
     /**

Copied: sandbox/vector-behavior/lib/OpenLayers/Lang/sv-SE.js (from rev 7302, trunk/openlayers/lib/OpenLayers/Lang/sv-SE.js)
===================================================================
--- sandbox/vector-behavior/lib/OpenLayers/Lang/sv-SE.js	                        (rev 0)
+++ sandbox/vector-behavior/lib/OpenLayers/Lang/sv-SE.js	2008-06-03 08:03:49 UTC (rev 7303)
@@ -0,0 +1,121 @@
+/* Copyright (c) 2006-2008 MetaCarta, Inc., published under the Clear BSD
+ * license.  See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Lang.js
+ */
+
+/**
+ * Namespace: OpenLayers.Lang["sv-SE"]
+ * Dictionary for swedish (Sweden).  Keys for entries are used in calls to
+ *     <OpenLayers.Lang.translate>.  Entry bodies are normal strings or
+ *     strings formatted for use with <OpenLayers.String.format> calls.
+ */
+OpenLayers.Lang["sv-SE"] = {
+
+    'unhandledRequest': "Ej hanterad fråga retur ${statusText}",
+
+    'permalink': "Permalänk",
+
+    'overlays': "Kartlager",
+
+    'baseLayer': "Bakgrundskarta",
+
+    'sameProjection':
+        "Översiktskartan fungerar endast när den har samma projektion som huvudkartan",
+
+    'readNotImplemented': "Läsning ej implementerad.",
+
+    'writeNotImplemented': "Skrivning ej implementerad.",
+
+    'noFID': "Kan ej uppdatera feature (objekt) för vilket FID saknas.",
+
+    'errorLoadingGML': "Fel i laddning av GML-fil ${url}",
+
+    'browserNotSupported':
+        "Din webbläsare stöder inte vektorvisning. För närvarande stöds följande visning:\n${renderers}",
+
+    'componentShouldBe': "addFeatures : komponenten skall vara en ${geomType}",
+
+    // console message
+    'getFeatureError':
+        "getFeatureFromEvent anropad för lager utan utritning. Detta betyder oftast att man " +
+        "raderat ett lager, men inte en hanterare som är knuten till lagret.",
+
+    // console message
+    'minZoomLevelError':
+    	"Egenskapen minZoomLevel är endast avsedd att användas " +
+    	"med lager med FixedZoomLevels. Att detta WFS-lager " +
+    	"kontrollerar minZoomLevel är en relik från äldre versioner. " +
+    	"Vi kan dock inte ta bort det utan att riskera att " +
+    	"OL-baserade tillämpningar som använder detta slutar " +
+    	"fungera. Därför är det satt som deprecated, minZoomLevel " +
+    	"kommer att tas bort i version 3.0. Använd i stället " +
+    	"inställning av min/max resolution som beskrivs här: " +
+        "http://trac.openlayers.org/wiki/SettingZoomLevels",
+
+    'commitSuccess': "WFS-transaktion: LYCKADES ${response}",
+
+    'commitFailed': "WFS-transaktion: MISSLYCKADES ${response}",
+
+    'googleWarning':
+    	"Google-lagret kunde inte laddas korrekt.<br><br>" + 
+    	"För att slippa detta meddelande, välj en annan bakgrundskarta " +
+    	"i lagerväljaren i övre högra hörnet.<br><br>" +
+    	"Sannolikt beror felet på att Google Maps-biblioteket " + 
+    	"inte är inkluderat på webbsidan eller på att sidan " +
+    	"inte anger korrekt API-nyckel för webbplatsen.<br><br>" +
+    	"Utvecklare: hjälp för att åtgärda detta, " +
+        "<a href='http://trac.openlayers.org/wiki/Google' " +
+        "target='_blank'>klicka här</a>.",
+
+    'getLayerWarning':
+    	"${layerType}-lagret kunde inte laddas korrekt.<br><br>" + 
+    	"För att slippa detta meddelande, välj en annan bakgrundskarta " +
+    	"i lagerväljaren i övre högra hörnet.<br><br>" +
+    	"Sannolikt beror felet på att ${layerLib}-biblioteket " + 
+    	"inte är inkluderat på webbsidan.<br><br>" +
+    	"Utvecklare: hjälp för att åtgärda detta, " +
+        "<a href='http://trac.openlayers.org/wiki/${layerLib}' " +
+        "target='_blank'>klicka här</a>.",
+
+    'scale': "<strong>Skala</strong> 1 : ${scaleDenom}",
+
+    // console message
+    'layerAlreadyAdded':
+    	"Du försökte lägga till lagret: ${layerName} på kartan, men det har lagts till tidigare",
+
+    // console message
+    'reprojectDeprecated':
+    	"Du använder inställningen 'reproject' på lagret ${layerName}. " +
+    	"Denna inställning markerad som deprecated: den var avsedd " +
+    	"att användas för att stödja visning av kartdata på kommersiella " +
+    	"bakgrundskartor, men nu bör man i stället " +
+    	"använda Spherical Mercator-stöd för den funktionaliteten. " +
+    	"Mer information finns " +   
+        "på http://trac.openlayers.org/wiki/SphericalMercator.",
+
+    // console message
+    'methodDeprecated':
+    	"Denna metod är markerad som deprecated och kommer att tas bort i 3.0. " +
+    	"Använd ${newMethod} i stället.",
+
+    // console message
+    'boundsAddError': "Du måste skicka både x- och y-värde till funktionen add.",
+
+    // console message
+    'lonlatAddError': "Du måste skicka både lon- och lat-värde till funktionen add.",
+
+    // console message
+    'pixelAddError': "Du måste skicka både x- och y-värde till funktionen add.",
+
+    // console message
+    'unsupportedGeometryType': "Stöd saknas för geometritypen: ${geomType}",
+
+    // console message
+    'pagePositionFailed':
+        "OpenLayers.Util.pagePosition misslyckades: elementet med id ${elemId} kan placeras fel.",
+                    
+    'end': ''
+};

Modified: sandbox/vector-behavior/lib/OpenLayers/Layer/Google.js
===================================================================
--- sandbox/vector-behavior/lib/OpenLayers/Layer/Google.js	2008-06-03 06:31:15 UTC (rev 7302)
+++ sandbox/vector-behavior/lib/OpenLayers/Layer/Google.js	2008-06-03 08:03:49 UTC (rev 7303)
@@ -189,8 +189,27 @@
      * evt - {Event}
      */
     onMapResize: function() {
-        this.mapObject.checkResize();  
+        if(this.visibility) {
+            this.mapObject.checkResize();  
+        } else {
+            this.windowResized = true;
+        }
     },
+    
+    /**
+     * Method: display
+     * Hide or show the layer
+     *
+     * Parameters:
+     * display - {Boolean}
+     */
+    display: function(display) {
+        OpenLayers.Layer.EventPane.prototype.display.apply(this, arguments);
+        if(this.div.style.display == "block" && this.windowResized) {
+            this.mapObject.checkResize();
+            this.windowResized = false;
+        }
+    },
 
     /**
      * APIMethod: getZoomForExtent

Modified: sandbox/vector-behavior/lib/OpenLayers/Layer/Grid.js
===================================================================
--- sandbox/vector-behavior/lib/OpenLayers/Layer/Grid.js	2008-06-03 06:31:15 UTC (rev 7302)
+++ sandbox/vector-behavior/lib/OpenLayers/Layer/Grid.js	2008-06-03 08:03:49 UTC (rev 7303)
@@ -353,7 +353,7 @@
         var minCols = Math.ceil(viewSize.w/this.tileSize.w) +
                       Math.max(1, 2 * this.buffer);
         
-        var extent = this.map.getMaxExtent();
+        var extent = this.maxExtent;
         var resolution = this.map.getResolution();
         
         var tileLayout = this.calculateGridLayout(bounds, extent, resolution);
@@ -719,7 +719,7 @@
      * {<OpenLayers.Bounds>} Bounds of the tile at the given pixel location.
      */
     getTileBounds: function(viewPortPx) {
-        var maxExtent = this.map.getMaxExtent();
+        var maxExtent = this.maxExtent;
         var resolution = this.getResolution();
         var tileMapWidth = resolution * this.tileSize.w;
         var tileMapHeight = resolution * this.tileSize.h;

Modified: sandbox/vector-behavior/lib/OpenLayers/Layer/Vector.js
===================================================================
--- sandbox/vector-behavior/lib/OpenLayers/Layer/Vector.js	2008-06-03 06:31:15 UTC (rev 7302)
+++ sandbox/vector-behavior/lib/OpenLayers/Layer/Vector.js	2008-06-03 08:03:49 UTC (rev 7303)
@@ -45,6 +45,15 @@
      *  - *featuresadded* Triggered after features are added.  The event
      *      object passed to listeners will have a *features* property with a
      *      reference to an array of added features.
+     *  - *beforefeatureremoved* Triggered before a feature is removed. Listeners
+     *      will receive an object with a *feature* property referencing the
+     *      feature to be removed.
+     *  - *featureremoved* Triggerd after a feature is removed. The event
+     *      object passed to listeners will have a *feature* property with a
+     *      reference to the removed feature.
+     *  - *featuresremoved* Triggered after features are removed. The event
+     *      object passed to listeners will have a *features* property with a
+     *      reference to an array of removed features.
      *  - *featureselected* Triggered after a feature is selected.  Listeners
      *      will receive an object with a *feature* property referencing the
      *      selected feature.
@@ -61,8 +70,9 @@
      *      Listeners will receive an object with a *feature* property referencing 
      *      the modified feature.
      */
-    EVENT_TYPES: ["beforefeatureadded", "featureadded",
-                  "featuresadded", "featureselected", "featureunselected", 
+    EVENT_TYPES: ["beforefeatureadded", "featureadded", "featuresadded",
+                  "beforefeatureremoved", "featureremoved", "featuresremoved",
+                  "featureselected", "featureunselected", 
                   "beforefeaturemodified", "featuremodified", "afterfeaturemodified"],
 
     /**
@@ -205,8 +215,6 @@
      * Destroy this layer
      */
     destroy: function() {
-        OpenLayers.Layer.prototype.destroy.apply(this, arguments);  
-
         this.destroyFeatures();
         this.features = null;
         this.selectedFeatures = null;
@@ -231,6 +239,7 @@
             this.strategy.destroy();
             this.strategy = null;
         }
+        OpenLayers.Layer.prototype.destroy.apply(this, arguments);  
     },
 
     /** 
@@ -406,14 +415,27 @@
      * 
      * Parameters:
      * features - {Array(<OpenLayers.Feature.Vector>)} 
+     * options - {Object}
      */
-    removeFeatures: function(features) {
+    removeFeatures: function(features, options) {
         if (!(features instanceof Array)) {
             features = [features];
         }
+        if (features.length <= 0) {
+            return;
+        }
 
+        var notify = !options || !options.silent;
+
         for (var i = features.length - 1; i >= 0; i--) {
             var feature = features[i];
+
+            if (notify) {
+                this.events.triggerEvent("beforefeatureremoved", {
+                    feature: feature
+                });
+            }
+
             this.features = OpenLayers.Util.removeItem(this.features, feature);
 
             if (feature.geometry) {
@@ -425,7 +447,17 @@
             if (OpenLayers.Util.indexOf(this.selectedFeatures, feature) != -1){
                 OpenLayers.Util.removeItem(this.selectedFeatures, feature);
             }
+
+            if (notify) {
+                this.events.triggerEvent("featureremoved", {
+                    feature: feature
+                });
+            }
         }
+
+        if (notify) {
+            this.events.triggerEvent("featuresremoved", {features: features});
+        }
     },
 
     /**

Modified: sandbox/vector-behavior/lib/OpenLayers/Util.js
===================================================================
--- sandbox/vector-behavior/lib/OpenLayers/Util.js	2008-06-03 06:31:15 UTC (rev 7302)
+++ sandbox/vector-behavior/lib/OpenLayers/Util.js	2008-06-03 08:03:49 UTC (rev 7303)
@@ -427,8 +427,9 @@
                                      "relative", border);
     
     if (OpenLayers.Util.alphaHack()) {
-
-        div.style.display = "inline-block";
+        if(div.style.display != "none") {
+            div.style.display = "inline-block";
+        }
         if (sizing == null) {
             sizing = "scale";
         }

Modified: sandbox/vector-behavior/tests/Feature/Vector.html
===================================================================
--- sandbox/vector-behavior/tests/Feature/Vector.html	2008-06-03 06:31:15 UTC (rev 7302)
+++ sandbox/vector-behavior/tests/Feature/Vector.html	2008-06-03 08:03:49 UTC (rev 7303)
@@ -59,7 +59,7 @@
     }
     
     function test_Feature_Vector_clone(t) {
-        t.plan(5);
+        t.plan(6);
 
         var geometry = new OpenLayers.Geometry.Point(Math.random(),
                                                      Math.random());
@@ -79,6 +79,11 @@
              "geometry.x property set properly");
         t.eq(clone.geometry.y, geometry.y,
              "geometry.y property set properly");
+
+        feature = new OpenLayers.Feature.Vector();
+        clone = feature.clone();
+        t.ok(clone instanceof OpenLayers.Feature.Vector,
+             "clone can clone geometry-less features");
     }
         
 

Modified: sandbox/vector-behavior/tests/Layer/Vector.html
===================================================================
--- sandbox/vector-behavior/tests/Layer/Vector.html	2008-06-03 06:31:15 UTC (rev 7302)
+++ sandbox/vector-behavior/tests/Layer/Vector.html	2008-06-03 08:03:49 UTC (rev 7303)
@@ -67,7 +67,7 @@
     }
 
     function test_Layer_Vector_removeFeatures(t) {
-        t.plan(3);
+        t.plan(6);
     
         var layer = new OpenLayers.Layer.Vector(name);
 
@@ -75,7 +75,7 @@
         var pointFeature1 = new OpenLayers.Feature.Vector(layer, point1);
         var point2 = new OpenLayers.Geometry.Point(-111.14, 45.78);
         var pointFeature2 = new OpenLayers.Feature.Vector(layer, point2);
-        
+      
         layer.addFeatures([pointFeature1, pointFeature2]);
         var features = layer.removeFeatures([pointFeature1]);
         
@@ -88,7 +88,36 @@
         
         t.ok(layer.features.length == 0,
              "OpenLayers.Layer.Vector.removeFeatures(layer.features) removes all feature from the features array");
-    }
+
+        // 3 tests
+        layer.events.register('beforefeatureremoved', null, function(obj) {
+            t.ok(pointFeature1 == obj.feature,
+                 "OpenLayers.Layer.Vector.removeFeatures triggers beforefeatureremoved with correct feature passed to callback");
+        });
+        layer.events.register('featureremoved', null, function(obj) {
+            t.ok(pointFeature1 == obj.feature,
+                 "OpenLayers.Layer.Vector.removeFeatures triggers featureremoved with correct feature passed to callback");
+        });
+        layer.events.register('featuresremoved', null, function(obj) {
+            t.ok(pointFeature1 == obj.features[0],
+                 "OpenLayers.Layer.Vector.removeFeatures triggers featuresremoved with correct features passed to callback");
+        });
+        layer.addFeatures([pointFeature1]);
+        layer.removeFeatures([pointFeature1]);
+
+        // 0 test
+        layer.events.register('beforefeatureremoved', null, function(obj) {
+            t.fail("OpenLayers.Layer.Vector.removeFeatures triggers beforefeatureremoved while it must not");
+        });
+        layer.events.register('featureremoved', null, function(obj) {
+            t.fail("OpenLayers.Layer.Vector.removeFeatures triggers featureremoved while it must not");
+        });
+        layer.events.register('featuresremoved', null, function(obj) {
+            t.fail("OpenLayers.Layer.Vector.removeFeatures triggers featuresremoved while it must not");
+        });
+        layer.addFeatures([pointFeature1]);
+        layer.removeFeatures([pointFeature1], {silent: true});
+     }
     
     function test_Layer_Vector_drawFeature(t) {
         t.plan(4);

Modified: sandbox/vector-behavior/tests/Util.html
===================================================================
--- sandbox/vector-behavior/tests/Util.html	2008-06-03 06:31:15 UTC (rev 7302)
+++ sandbox/vector-behavior/tests/Util.html	2008-06-03 08:03:49 UTC (rev 7303)
@@ -400,7 +400,7 @@
     }
 
     function test_Util_modifyAlphaImageDiv(t) {
-        t.plan( 19 );
+        t.plan( 20 );
 
         var imageDiv = OpenLayers.Util.createAlphaImageDiv();
 
@@ -460,8 +460,6 @@
 
         if (OpenLayers.Util.alphaHack()) {
         
-            t.eq(imageDiv.style.display, "inline-block", "imageDiv.style.display set correctly");
-
             var filter = "progid:DXImageTransform.Microsoft" +
                          ".AlphaImageLoader(src='" + img + "', " +
                          "sizingMethod='" + sizing + "') alpha(opacity=" + opacity *100 + ")";
@@ -476,6 +474,20 @@
             t.ok(true, "image filter value not set (not in IE)");
         }
 
+        var imageDiv = OpenLayers.Util.createAlphaImageDiv();
+        var display = "none";
+        imageDiv.style.display = display;
+        OpenLayers.Util.modifyAlphaImageDiv(imageDiv, id, xy, sz, img, position, border, sizing, opacity);
+        t.eq(imageDiv.style.display, display, "imageDiv.style.display set correctly, if 'none'");
+
+        var imageDiv = OpenLayers.Util.createAlphaImageDiv();
+        var display = "block";
+        imageDiv.style.display = display;
+        OpenLayers.Util.modifyAlphaImageDiv(imageDiv, id, xy, sz, img, position, border, sizing, opacity);
+        t.eq(imageDiv.style.display, "inline-block", "imageDiv.style.display set correctly, if not 'none'");
+
+        
+
         var imageDiv = OpenLayers.Util.createAlphaImageDiv(id, xy, sz, img, position, border, "scale", opacity);
         if (OpenLayers.Util.alphaHack()) {
             var filter = "progid:DXImageTransform.Microsoft" +



More information about the Commits mailing list