| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- /* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the Clear BSD license.
- * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
- * full text of the license. */
- /**
- * @requires OpenLayers/Control.js
- */
- /**
- * Class: OpenLayers.Control.Attribution
- * The attribution control adds attribution from layers to the map display.
- * It uses 'attribution' property of each layer.
- *
- * Inherits from:
- * - <OpenLayers.Control>
- */
- OpenLayers.Control.Attribution =
- OpenLayers.Class(OpenLayers.Control, {
-
- /**
- * APIProperty: seperator
- * {String} String used to seperate layers.
- */
- separator: ", ",
-
- /**
- * Constructor: OpenLayers.Control.Attribution
- *
- * Parameters:
- * options - {Object} Options for control.
- */
- /**
- * Method: destroy
- * Destroy control.
- */
- destroy: function() {
- this.map.events.un({
- "removelayer": this.updateAttribution,
- "addlayer": this.updateAttribution,
- "changelayer": this.updateAttribution,
- "changebaselayer": this.updateAttribution,
- scope: this
- });
-
- OpenLayers.Control.prototype.destroy.apply(this, arguments);
- },
-
- /**
- * Method: draw
- * Initialize control.
- *
- * Returns:
- * {DOMElement} A reference to the DIV DOMElement containing the control
- */
- draw: function() {
- OpenLayers.Control.prototype.draw.apply(this, arguments);
-
- this.map.events.on({
- 'changebaselayer': this.updateAttribution,
- 'changelayer': this.updateAttribution,
- 'addlayer': this.updateAttribution,
- 'removelayer': this.updateAttribution,
- scope: this
- });
- this.updateAttribution();
-
- return this.div;
- },
- /**
- * Method: updateAttribution
- * Update attribution string.
- */
- updateAttribution: function() {
- var attributions = [];
- if (this.map && this.map.layers) {
- for(var i=0, len=this.map.layers.length; i<len; i++) {
- var layer = this.map.layers[i];
- if (layer.attribution && layer.getVisibility()) {
- // add attribution only if attribution text is unique
- if (OpenLayers.Util.indexOf(
- attributions, layer.attribution) === -1) {
- attributions.push( layer.attribution );
- }
- }
- }
- this.div.innerHTML = attributions.join(this.separator);
- }
- },
- CLASS_NAME: "OpenLayers.Control.Attribution"
- });
|