API Docs for:
Show:

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

/**
 * dynamic html for TiledImage
 * $Id: DumbLayer.js 8 2013-03-25 03:01:54Z nazotoko $
 * Copyright 2013 Shun N. Watanabe <nazotoko (a+) users.sourceforge.net>
 * @module TiledImage
 */

/**
 * Dump Layers Object. This creates the moving layers and manages it, though,
 * no contents on it. This is a kind of template class.
 * @class DumbLayer
 * @constructor
 * @parm name {String} name of the layer. Every layer must have an unique name.
 * @parm w {Number} width of the original image
 * @parm h {Number} height of the original image
 **/
function DumbLayer(name,w,h){
    /**
     * name of the layer
     * @private
     * @property name_
     * @type String
     */
    var name_=name,
    /**
     * parent (TiledImage) pointer 
     * @property parent
     * @type Object
     * @private
     */
    parent,
    /**
     * DOM Element of the layer
     * @property layer
     * @type DOMElement
     * @private
     */
    layer,
    /**
     * max size
     * @private
     * @property maxSize
     * @type Array[Number,Number]
     */
    maxSize=[w,h],
    /**
     * current zoom level
     * @private
     * @property z_
     * @type Number
     */
    z_,
    /**
     * maximum zoom level
     * @private
     * @property maxZ
     * @type Number
     */
    maxZ;

    d.mod(this,{
	/**
	 *  setParent are usually called form TiledImage object. 
	 *  The moving layers are created under moving layer. 
	 * <ul>
	 *  <li>div (relative): TiledImage<ul>
	 *  <li>div (absolute): moving<ul>
         *  <li>div (relative): layer 1<ul>
	 *  <li>img (absolute): tile</li>
	 *  <li>img (absolute): tile</li>
	 *  </ul></li>
	 *  <li>div (relative): layer 2</li>
	 *  </ul></li>
	 *  <li>div (absolute): added by some Control object</li>
	 * <li>div (absolute): added by some Control object</li>
	 *  <li>input (absolute): added by some Control object</li>
	 *  <li>input (absolute): added by some Control object</li>
	 *  <li>img (absolute): added by some Control object</li>
	 *  </ul></li>
	 *  </ul>
	 *  The moving layers are created by TiledImage object created. The layer
	 *  1 should be created by Layers object when <strong>setParent</strong> are
	 *  called by TiledImage object. This method is called when the Layer object
	 *  is added by
	 *  <a href="TiledImage.html#method_addLayer">TiledImage.addLayer</a>.
	 * @public
	 * @method setParent
	 * @required
	 * @param p {Object} object of TiledImage. It's called as parent. 
	 */
	setParent:function (p){
	    parent=p;
	    maxZ=p.getMaxZooms()[1];
	    layer=d.app(p.map,'div',{id:p.target.id+'-dumbL-'+name_,classname:'map'});
	},
	/**
	 * @public
	 * @method detach
	 * @required
	 */
	detach:function(){
	    parent.map.removeChild(layer);
	    layer=null;
	},
	/**
	 * @public
	 * @method getName
	 * @required
	 * @return {String} name of the layer.
	 */
	getName:function(){
	    return name;
	},
	/**
	 * @public
	 * @method getWrap
	 * @required
	 * @return {Array[Boolean,Boolean]} wrap flags
	 */
	getWrap:function(){
	    return [false,false];
	},
	/**
	 * @public
	 * @method getMaxSize
	 * @required
	 * @return {Array[Number,Number]} original image size
	 */
	getMaxSize:function(){
	    return maxSize;
	},
	/**
	 * append DOM Elements in the range.
	 * When the view is moved, the append methods of all layers are called from
	 * TiledImage object.
	 * @public
	 * @method append
	 * @required
	 * @param l {Number} left edge by absolute position
	 * @param t {Number} top edge by absolute position
	 * @param r {Number} right edge by absolute position
	 * @param b {Number} bottom edge by absolute position
	 */
	append:function(l,t,r,b){
	    if(maxZ<z_)return;
	    //showSomething
	    //	    var ele=d.app(this.layer,o.ele,{style:{position:'absolute',left:x+'px',top:y+'px',width:w+'px',height:h+'px'}});
	},
	/**
	 * @public
	 * @method getMaxZ
	 * @required
	 * @return {Number} maximum zoom level
	 */
	getMaxZ:function(){
	    return maxZ;
	},
	/**
	 * set zoom level. This should be called though TiledImage object.
	 * @public
	 * @method setZoom
	 * @required
	 */
	setZoom:function(z){
	    z_=z;
	},
	/**
	 * @public
	 * @method removeAll
	 * @required
	 */
	removeAll:function(){
	    d.removeAll(layer);
	}
    });
}