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
This commit is contained in:
@@ -16,7 +16,7 @@ OpenLayers.Control.Attribution =
|
|||||||
* APIProperty: seperator
|
* APIProperty: seperator
|
||||||
* {String} String used to seperate layers.
|
* {String} String used to seperate layers.
|
||||||
*/
|
*/
|
||||||
seperator: ", ",
|
separator: ", ",
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor: OpenLayers.Control.Attribution
|
* Constructor: OpenLayers.Control.Attribution
|
||||||
@@ -36,6 +36,7 @@ OpenLayers.Control.Attribution =
|
|||||||
this.map.events.unregister("removelayer", this, this.updateAttribution);
|
this.map.events.unregister("removelayer", this, this.updateAttribution);
|
||||||
this.map.events.unregister("addlayer", this, this.updateAttribution);
|
this.map.events.unregister("addlayer", this, this.updateAttribution);
|
||||||
this.map.events.unregister("changelayer", 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);
|
OpenLayers.Control.prototype.destroy.apply(this, arguments);
|
||||||
},
|
},
|
||||||
@@ -50,6 +51,7 @@ OpenLayers.Control.Attribution =
|
|||||||
draw: function() {
|
draw: function() {
|
||||||
OpenLayers.Control.prototype.draw.apply(this, arguments);
|
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('changelayer', this, this.updateAttribution);
|
||||||
this.map.events.register('addlayer', this, this.updateAttribution);
|
this.map.events.register('addlayer', this, this.updateAttribution);
|
||||||
this.map.events.register('removelayer', this, this.updateAttribution);
|
this.map.events.register('removelayer', this, this.updateAttribution);
|
||||||
@@ -70,7 +72,7 @@ OpenLayers.Control.Attribution =
|
|||||||
attributions.push( layer.attribution );
|
attributions.push( layer.attribution );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.div.innerHTML = attributions.join(this.seperator);
|
this.div.innerHTML = attributions.join(this.separator);
|
||||||
},
|
},
|
||||||
|
|
||||||
/** @final @type String */
|
/** @final @type String */
|
||||||
|
|||||||
@@ -10,6 +10,16 @@
|
|||||||
t.ok( control instanceof OpenLayers.Control.Attribution, "new OpenLayers.Control returns object" );
|
t.ok( control instanceof OpenLayers.Control.Attribution, "new OpenLayers.Control returns object" );
|
||||||
t.eq( control.displayClass, "olControlAttribution", "displayClass is correct" );
|
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) {
|
function test_Control_Attribution_draw (t) {
|
||||||
t.plan(3);
|
t.plan(3);
|
||||||
control = new OpenLayers.Control.Attribution();
|
control = new OpenLayers.Control.Attribution();
|
||||||
@@ -19,9 +29,11 @@
|
|||||||
t.eq(control.div.innerHTML, 'My layer!', "Attribution correct with one layer.");
|
t.eq(control.div.innerHTML, 'My layer!', "Attribution correct with one layer.");
|
||||||
map.addLayer(new OpenLayers.Layer("name", {'attribution':'My layer 2!'}));
|
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.");
|
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!'}));
|
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.");
|
t.eq(control.div.innerHTML, 'My layer!|My layer 2!|My layer 3!', "Attribution correct with three layers and diff seperator.");
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
// -->
|
// -->
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user