From 446759fd650e4b3c64a738f24b7dbd38891880ad Mon Sep 17 00:00:00 2001 From: crschmidt Date: Wed, 12 Sep 2007 13:40:28 +0000 Subject: [PATCH] FredJ reviewed my work here and said it solved the problem that he reopened 103 for (specifically, that baselayer changes always resulted in a null attribution string), and fixes spelling. This commit makes the attribution control work and stuff. (Closes #103) git-svn-id: http://svn.openlayers.org/trunk/openlayers@4237 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- lib/OpenLayers/Control/Attribution.js | 6 ++++-- tests/Control/test_Attribution.html | 14 +++++++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/lib/OpenLayers/Control/Attribution.js b/lib/OpenLayers/Control/Attribution.js index e079f6b63f..fc8bc1fc96 100644 --- a/lib/OpenLayers/Control/Attribution.js +++ b/lib/OpenLayers/Control/Attribution.js @@ -16,7 +16,7 @@ OpenLayers.Control.Attribution = * APIProperty: seperator * {String} String used to seperate layers. */ - seperator: ", ", + separator: ", ", /** * Constructor: OpenLayers.Control.Attribution @@ -36,6 +36,7 @@ OpenLayers.Control.Attribution = this.map.events.unregister("removelayer", this, this.updateAttribution); this.map.events.unregister("addlayer", this, this.updateAttribution); this.map.events.unregister("changelayer", this, this.updateAttribution); + this.map.events.unregister("changebaselayer", this, this.updateAttribution); OpenLayers.Control.prototype.destroy.apply(this, arguments); }, @@ -50,6 +51,7 @@ OpenLayers.Control.Attribution = draw: function() { OpenLayers.Control.prototype.draw.apply(this, arguments); + this.map.events.register('changebaselayer', this, this.updateAttribution); this.map.events.register('changelayer', this, this.updateAttribution); this.map.events.register('addlayer', this, this.updateAttribution); this.map.events.register('removelayer', this, this.updateAttribution); @@ -70,7 +72,7 @@ OpenLayers.Control.Attribution = attributions.push( layer.attribution ); } } - this.div.innerHTML = attributions.join(this.seperator); + this.div.innerHTML = attributions.join(this.separator); }, /** @final @type String */ diff --git a/tests/Control/test_Attribution.html b/tests/Control/test_Attribution.html index 70e914db35..15809f7278 100644 --- a/tests/Control/test_Attribution.html +++ b/tests/Control/test_Attribution.html @@ -10,6 +10,16 @@ t.ok( control instanceof OpenLayers.Control.Attribution, "new OpenLayers.Control returns object" ); t.eq( control.displayClass, "olControlAttribution", "displayClass is correct" ); } + function test_Control_Attribution_setBaseLayer (t) { + t.plan(1); + map = new OpenLayers.Map("map"); + map.addControl(control); + map.addLayer(new OpenLayers.Layer("name",{'attribution':'My layer!', isBaseLayer: true})); + map.addLayer(new OpenLayers.Layer("name",{'attribution':'My layer 2!', isBaseLayer: true})); + map.setBaseLayer(map.layers[1]); + t.eq(control.div.innerHTML, 'My layer 2!', "Attribution correct with changed base layer"); + + } function test_Control_Attribution_draw (t) { t.plan(3); control = new OpenLayers.Control.Attribution(); @@ -19,9 +29,11 @@ t.eq(control.div.innerHTML, 'My layer!', "Attribution correct with one layer."); map.addLayer(new OpenLayers.Layer("name", {'attribution':'My layer 2!'})); t.eq(control.div.innerHTML, 'My layer!, My layer 2!', "Attribution correct with two layers."); - control.seperator = '|'; + control.separator = '|'; map.addLayer(new OpenLayers.Layer("name",{'attribution':'My layer 3!'})); t.eq(control.div.innerHTML, 'My layer!|My layer 2!|My layer 3!', "Attribution correct with three layers and diff seperator."); + + } // -->