1 /**
  2  * @author Gillis Haasnoot <gillis.haasnoot@gmail.com>
  3  * @package Banana.Controls
  4  * @summary DataGridItemRender  
  5  */
  6 
  7 goog.provide('Banana.Controls.ItemRender');
  8 
  9 /** @namespace Banana.Controls.DataGridItemRender */
 10 namespace('Banana.Controls').DataGridItemRender = Banana.Control.extend(
 11 /** @lends Banana.Controls.DataGridItemRender.prototype */
 12 {
 13 
 14 	/**
 15 	 * Base class for itemrenders are used in various list renders of datagrids
 16 	 * Itemrenders are the visible items in a datagrid.
 17 	 * By extending from this base item render class you can build your own custom item render
 18 	 * @constructs
 19 	 * @extends Banana.Control
 20 	 */
 21 	init : function()
 22 	{
 23 		this._super();
 24 		
 25 		this.listRender = null;
 26 	},
 27 	
 28 	/**
 29 	 * Sets reference to the list render
 30 	 * @param {Banana.Controls.DataGridBaseListRender} lr
 31 	 */
 32 	setListRender : function(lr)
 33 	{
 34 		this.listRender = lr;
 35 	},
 36 	
 37 	/**
 38 	 * @return {Banana.Controls.DataGridBaseListRender}
 39 	 */
 40 	getListRender : function()
 41 	{
 42 		return this.listRender;
 43 	},
 44 	
 45 	/**
 46 	 * @param {int} i row index
 47 	 */
 48 	setRowIndex : function(i)
 49 	{
 50 		this.rowIndex = i;	
 51 	},
 52 	
 53 	/**
 54 	 * @return {int} index of the itemrender in the listrender
 55 	 */
 56 	getRowIndex : function()
 57 	{
 58 		return this.listRender.getIndexByRow(this.parent);
 59 	},
 60 	
 61 	/**
 62 	 * @return {boolean} true when item can be selected
 63 	 */
 64 	getIsSelectable : function()
 65 	{
 66 		return false;
 67 	},
 68 	
 69 	/**
 70 	 * @param {mixed} data
 71 	 * @param {boolean} ignoreEvent
 72 	 * @param {boolean} ignoreDom 
 73 	 */
 74 	setData : function(data,ignoreEvent,ignoreDom)
 75 	{
 76 		this.data = data;
 77 
 78 		if (!ignoreEvent)
 79 		{
 80 			this.triggerEvent('dataChanged',data);
 81 		}
 82 
 83 		return this;
 84 	},
 85 	
 86 	/**
 87 	 * @return {mixed} data
 88 	 */
 89 	getData : function()
 90 	{
 91 		return this.data;
 92 	}
 93 });