[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