1 /**
  2  * @author Gillis Haasnoot <gillis.haasnoot@gmail.com>
  3  * @package Banana.Controls
  4  * @summary DataGridTableContentItemRender  
  5  */
  6 
  7 goog.require('Banana.Controls.DataGridTableItemRender');
  8 
  9 goog.provide('Banana.Controls.DataGridTableContentItemRender');
 10 
 11 /** @namespace Banana.Controls.DataGridTableContentItemRender */
 12 namespace('Banana.Controls').DataGridTableContentItemRender = Banana.Controls.DataGridTableItemRender.extend(
 13 /** @lends Banana.Controls.DataGridTableContentItemRender.prototype */
 14 {
 15 	/**
 16 	 * creates Datagrid Table content item render.   
 17 	 * @constructs
 18 	 * @extends  Banana.Controls.DataGridTableItemRender
 19 	 */
 20 	init : function()
 21 	{
 22 		this._super();
 23 	},
 24 
 25 	/**
 26 	 * Overwrite this method to implement your own custom logic.
 27 	 * In this method you have access to this.data
 28 	 */
 29 	createComponents : function()
 30 	{
 31 		this.createColumns(this);		
 32 	},
 33 	
 34 	/**
 35 	 * @param {Banana.UiControl} target control where column will be rendered in 
 36 	 */
 37 	createColumns : function(target)
 38 	{
 39 		var columns = this.listRender.columns;
 40 		
 41 		for (var j =0, clen = columns.length; j < clen; j++)
 42 		{
 43 			var columnController = columns[j] //column defined by user
 44 		
 45 			if (columnController.visible == false) continue;
 46 			
 47 			var control = columnController.getControl();
 48 			
 49 			if (columnController.getDataField())
 50 			{		
 51 				control.setData(Banana.Util.getDataByPath(this.getData(),columnController.getDataField()));
 52 			}
 53 			
 54 			columnController.listRender = this.listRender; 
 55 			
 56 			var column = new Banana.Controls.TableCol();
 57 			column.setStyle(columnController.getStyle());
 58 			column.attributes = columnController.attributes;
 59 			column.addControl(control);
 60 			
 61 			target.addControl(column);
 62 			
 63 			columnController.triggerEvent('onItemCreated',{'control':control,'data':this.getData()});
 64 		}				
 65 	},
 66 	
 67 	/**
 68 	 * Called when item is selected
 69 	 */
 70 	select : function()
 71 	{
 72 		this.getListRender().getRowByItemRender(this).addCssClass("BDataGridTableListRenderSelected");
 73 	},
 74 	
 75 	/**
 76 	 * Called when item is deselected
 77 	 */
 78 	deselect : function()
 79 	{
 80 		this.getListRender().getRowByItemRender(this).removeCssClass("BDataGridTableListRenderSelected");
 81 	},
 82 	
 83 	/**
 84 	 * Called when mouse moves over the item render.
 85 	 */
 86 	mouseOver : function()
 87 	{
 88 		this.getListRender().getRowByItemRender(this).addCssClass("BDataGridTableListRenderMouseover");
 89 	},
 90 	
 91 	/**
 92 	 * Called when mouse moves out the item render
 93 	 */
 94 	mouseOut : function()
 95 	{
 96 		this.getListRender().getRowByItemRender(this).removeCssClass("BDataGridTableListRenderMouseover");
 97 	},
 98 	
 99 	/**
100 	 * @return {boolean}
101 	 */
102 	getIsSelectable : function()
103 	{
104 		return true;
105 	}	
106 });