# inputEx-library

### inputEx 0.5.1

inputEx-library > inputEx > Lens-beta.js (source view)
Search:
Filters Show Private Show Protected Show Deprecated

    (function() {

       var lang = YAHOO.lang;

    /**
     * Display a group with inplace edit and custom template
     * @class inputEx.Lens
     * @extends inputEx.Group
     * @constructor
     * @param {Object} options Added options:
     * <ul>
     *    <li>lens: html code for the lens. Fields will be displayed in the div elements that has the classname named "field-(field name)"</li>
     *    <li>visus: list of visualization for each field</li>
     * </ul>
     */
    inputEx.Lens = function(options) {
       inputEx.Lens.superclass.constructor.call(this, options);
    };

    lang.extend(inputEx.Lens, inputEx.Group, {

       /**
        * Set additional options
        */
    	setOptions: function(options) {
    		inputEx.Lens.superclass.setOptions.call(this, options);

    		var lens = "";
    		if( !lang.isString(options.lens) ) {
    			for(var i = 0 ; i < this.options.fields.length ; i++) {
    				lens += "<div class='field-"+this.options.fields[i].name+"'></div>";
    			}
    		}
    		this.options.lens = lang.isString(options.lens) ? options.lens : lens;

    		this.options.visus = options.visus;
    	},

    	/**
    	 * Render each the fields in each div which class attribute is "field-"+fieldName
    	 */
    	renderFields: function(parentEl) {

    			parentEl.innerHTML = this.options.lens;

    			for(var i = 0 ; i < this.options.fields.length ; i++) {
    				var els = YAHOO.util.Dom.getElementsByClassName( "field-"+this.options.fields[i].name, "div", parentEl);
    				var el = els[0];
    				var params = { parentEl: el, editorField: this.options.fields[i], name: this.options.fields[i].name };
    				if(this.options.visus) {
    					params.visu = this.options.visus[i];
    				}
    				var field = new inputEx.InPlaceEdit(params);

    				this.inputs.push(field);
    				if(field.options.name) {
    		    	this.inputsNames[field.options.name] = field;
    		    }
    			  // Subscribe to the field "updated" event to send the group "updated" event
    			  field.updatedEvt.subscribe(this.onChange, this, true);

    			}

       }

    });

    })();

Copyright © 2010 Eric Abouaf All rights reserved.