API Docs for:
Show:

File: src/main/resources/js/LayersControl.js

/**
 * dynamic html for TiledImage
 * $Id: LayersControl.js 11 2013-04-06 21:25:54Z nazotoko $
 * Copyright 2013 Shun N. Watanabe <nazotoko (a+) users.sourceforge.net>
 * @module TiledImage
 */

/**
 * Layers Control Class
 * <ul>
 *   <li>example
 *     <div id="layersControl-ex1" style="height:255px;width:400px;"></div>
 *      <script><!--
 *      var layersControl=new TiledImage("layersControl-ex1");
 *      layersControl.addLayer(new TilesLayer("chicago","../../chicago_skyview/z${z}/${x}_${y}.jpg",1920,1218).setTileSize(240,256));
 *      layersControl.addControl(new LayersControl());
 *      //--></script>
 *      </li>
 * </ul>
 * @class LayersControl
 * @constructor
 **/
function LayersControl(){
    /**
     * self: private scope of this
     * @property self
     * @type Object
     * @private
     * @default this
     */
    var self=this,
    /**
     * parent (TiledImage) pointer 
     * @property parent
     * @type Object
     * @private
     */
    parent,
    /**
     * DOM Element's parent
     * @property target
     * @type Object
     * @private
     */
    target,
    /**
     * DOM Element of the list box 
     * @property list
     * @type Object
     * @private
     */
    list;
    /**
     * listener of clicking checkbox of a layer.
     * Note that the "this" is the checkbox clicked
     * @private
     * @method onLayer
     * @param {Object} e event object?
     */
    var onLayer=function(e){
	parent.modLayer(this.value,this.checked);
    };
    /**
     * listener of "changelayer".
     * Write list of the names of Layers. Called from TiledImage object
     * @private
     * @method draw
     * @param {Array[Object]} p list of array of layers.
     */
    var draw=function(p){
	var t='',key,obj;
	for(key in p){
	    obj=p[key];
	    t+='<input type="checkbox" name="a" id="'+target.id+'-LC-'+key+'" value="'
		+obj.l.getName()+'" '+((obj.show)?'  checked="yes"':'')+'/>'+obj.l.getName()+'<br/>';
	}
	list.innerHTML=t;
	for(key in p){
	    d.get(target.id+'-LC-'+key).onclick=onLayer;
	}
    };


    /**
     * Called from TiledImage object
     * @public
     * @method setParent
     * @required
     * @param {Object} p parent (TiledImage) object.
     * @return {Array} this.elist event list
     */
    this.setParent=function (p){
	parent=p;
	target=p.target;
	list=d.app(target,'div',{className:"popup box",style:{right:'0px',top:'16px',opacity:'0.7'}});
	/**
	 * Event list
	 * @public
	 * @property elist
	 * @type Array
	 * @required
	 */
	return this.elist=[
	    {m:'changelayer',f:draw}
	];
    };
};