Source: BKGWebMap/Control/ZoomLevel.js

/*
 * Copyright (c) 2013 Bundesamt by Kartographie und Geodäsie.
 * See license.txt in the BKG WebMap distribution or repository for the
 * full text of the license.
 *
 * Author: Dirk Thalheim
 */

/**
 * @requires OpenLayers/BaseTypes/Class.js
 * @requires OpenLayers/Control.js
 * @requires BKGWebMap/Control.js
 */


/**
 * @classdesc Klasse für Kontrollelement zur Darstellung des aktuellen Zoomlevels
 *
 * @constructor BKGWebMap.Control.ZoomLevel
 * @param {object} options - Optionen für das Controlelement
 **/
BKGWebMap.Control.ZoomLevel = OpenLayers.Class(OpenLayers.Control, {

    /**
     * Offset für Zoomlevel
     *
     * @memberOf BKGWebMap.Control.ZoomLevel
     * @type int
     */
    offset: 0,

    initialize:function(options) {
        OpenLayers.Control.prototype.initialize.apply(this, [options]);
    },

    /**
     * Zuweisung der Karte. Hier wird sich zusätzlich auf den ZoomEvent registriert.
     * @memberOf BKGWebMap.Control.ZoomLevel
     * @param {OpenLayers.Map} map - interaktive Karte
     */
    setMap: function(map) {
        OpenLayers.Control.prototype.setMap.apply(this, arguments);

        this.map.events.on({
            zoomend: this.updateZoom,
            scope: this
        });
    },

    draw: function(px) {
    	var div = OpenLayers.Control.prototype.draw.apply(this, arguments);
        this.updateZoom();
    	return div;
    },

    /**
     * Aktualisiert die Zoomlevelanzeige.
     * @memberOf BKGWebMap.Control.ZoomLevel
     */
    updateZoom: function() {
        this.div.innerHTML = "Zoomlevel " + (this.map.getZoom() + this.offset);
    },

    CLASS_NAME: "BKGWebMap.Control.ZoomLevel"
});

/**
 * Fügt die ZoomLevel anzeige der Control-Liste hinzu.
 * @param {Array<OpenLayers.Control>} controls - Liste der Steuerelemente, in die die neue erzeugten Steuerelemente
 *                                               eingefügt werden sollen.
 * @param {object} config - Konfiguration für das ZoomLevel-Steuerelement (s. Konstruktor BKGWebMap.Control.ZoomLevel).
 */
BKGWebMap.Control.FACTORIES['zoomLevel'] = function(controls, config) {
    if (!config) return;
    config = (typeof config === 'boolean') ? {} : config;
    controls.push(new BKGWebMap.Control.ZoomLevel(config));
};