Adding a bit of flexibility to extend and applyDefaults. First argument can now be undefined. r=pspencer,elemoine (closes #1564)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@7311 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
Tim Schaub
2008-06-05 20:37:40 +00:00
parent 0ecb973e1c
commit 74f4338fe0
8 changed files with 34 additions and 37 deletions

View File

@@ -550,9 +550,9 @@ OpenLayers.Format.KML = OpenLayers.Class(OpenLayers.Format.XML, {
if (inlineStyleNode) {
var inlineStyle= this.parseStyle(inlineStyleNode);
if (inlineStyle) {
feature.style = OpenLayers.Util.extend({},
feature.style);
OpenLayers.Util.extend(feature.style, inlineStyle);
feature.style = OpenLayers.Util.extend(
feature.style, inlineStyle
);
}
}

View File

@@ -64,13 +64,9 @@ OpenLayers.Layer.KaMap = OpenLayers.Class(OpenLayers.Layer.Grid, {
var newArguments = [];
newArguments.push(name, url, params, options);
OpenLayers.Layer.Grid.prototype.initialize.apply(this, newArguments);
this.params = (params ? params : {});
if (params) {
OpenLayers.Util.applyDefaults(
this.params,
this.DEFAULT_PARAMS
);
}
this.params = OpenLayers.Util.applyDefaults(
this.params, this.DEFAULT_PARAMS
);
},
/**

View File

@@ -42,12 +42,9 @@ OpenLayers.Layer.MapServer = OpenLayers.Class(OpenLayers.Layer.Grid, {
newArguments.push(name, url, params, options);
OpenLayers.Layer.Grid.prototype.initialize.apply(this, newArguments);
if (arguments.length > 0) {
OpenLayers.Util.applyDefaults(
this.params,
this.DEFAULT_PARAMS
);
}
this.params = OpenLayers.Util.applyDefaults(
this.params, this.DEFAULT_PARAMS
);
// unless explicitly set in options, if the layer is transparent,
// it will be an overlay

View File

@@ -138,11 +138,10 @@ OpenLayers.Layer.WFS = OpenLayers.Class(
this.options.geometry_column = "the_geom";
}
this.params = params;
OpenLayers.Util.applyDefaults(
this.params,
OpenLayers.Util.upperCaseObject(this.DEFAULT_PARAMS)
);
this.params = OpenLayers.Util.applyDefaults(
params,
OpenLayers.Util.upperCaseObject(this.DEFAULT_PARAMS)
);
this.url = url;
},

View File

@@ -54,13 +54,9 @@ OpenLayers.Layer.WorldWind = OpenLayers.Class(OpenLayers.Layer.Grid, {
var newArguments = [];
newArguments.push(name, url, params, options);
OpenLayers.Layer.Grid.prototype.initialize.apply(this, newArguments);
this.params = (params ? params : {});
if (params) {
OpenLayers.Util.applyDefaults(
this.params,
this.DEFAULT_PARAMS
);
}
this.params = OpenLayers.Util.applyDefaults(
this.params, this.DEFAULT_PARAMS
);
},
/**
* Method: addTile

View File

@@ -1335,11 +1335,7 @@ OpenLayers.Map = OpenLayers.Class({
* false.
*/
pan: function(dx, dy, options) {
// this should be pushed to applyDefaults and extend
if (!options) {
options = {};
}
OpenLayers.Util.applyDefaults(options, {
options = OpenLayers.Util.applyDefaults(options, {
animate: true,
dragging: false
});

View File

@@ -49,7 +49,8 @@ if ($ == null) {
* {Object} The destination object.
*/
OpenLayers.Util.extend = function(destination, source) {
if(destination && source) {
destination = destination || {};
if(source) {
for(var property in source) {
var value = source[property];
if(value !== undefined) {
@@ -522,7 +523,7 @@ OpenLayers.Util.upperCaseObject = function (object) {
* in place and returned by this function.
*/
OpenLayers.Util.applyDefaults = function (to, from) {
to = to || {};
/*
* FF/Windows < 2.0.0.13 reports "Illegal operation on WrappedNative
* prototype object" when calling hawOwnProperty if the source object is an

View File

@@ -169,7 +169,7 @@
function test_Util_applyDefaults(t) {
t.plan(10);
t.plan(11);
var to = {
'a': "abra",
@@ -198,6 +198,12 @@
t.eq( ret["c"], "press", "key present in from and not ret successfully copied to ret");
t.eq(to.toString(), "works", "correctly applies custom toString");
t.eq(to.n, null, "correctly preserves null");
var to;
var from = {rand: Math.random()};
var ret = OpenLayers.Util.applyDefaults(to, from);
t.eq(ret.rand, from.rand, "works with undefined to");
}
function test_Util_getParameterString(t) {
@@ -709,7 +715,7 @@
}
function tests_Util_extend(t) {
t.plan(6);
t.plan(7);
var source = {
num: Math.random(),
@@ -736,6 +742,12 @@
t.eq(destination.nada, "untouched",
"undefined source properties don't clobber existing properties");
t.eq(window.property, undefined, "Property variable not clobbered.");
var destination;
var source = {rand: Math.random()};
var ret = OpenLayers.Util.extend(destination, source);
t.eq(destination.rand, source.rand, "works with undefined destination");
}
function test_XX_Util_Try(t) {