1 goog.provide('Banana.Controls.DataGridTreeItemRender');
  2 
  3 goog.require('Banana.Controls.ItemRender');
  4 
  5 /** @namespace Banana.Controls.DataGridTreeItemRender */
  6 namespace('Banana.Controls').DataGridTreeItemRender = Banana.Controls.DataGridItemRender.extend(
  7 /** @lends Banana.Controls.DataGridTreeItemRender.prototype */
  8 {
  9 	 /**
 10 	 * Base class for datagrid tree item render
 11 	 * Overwrite this class to implement your own tree item render
 12 	 * 
 13 	 * 
 14 	 * 
 15 	 * @constructs
 16 	 * @extends Banana.Controls.DataGridItemRender
 17 	 */
 18 	init : function()
 19 	{
 20 		this._super();
 21 	},
 22 
 23 	/**
 24 	 * overwrite to implement your own logic
 25 	 */
 26 	createComponents : function()
 27 	{
 28 		this.panel = new Banana.Controls.Panel().setStyle('float:left;');
 29 		this.panel.addCssClass('BDataGridTreeItemRender');
 30 		
 31 		this.label = new Banana.Controls.Label().setStyle('float:left;');
 32 		this.panel.addControl(this.label);
 33 		
 34 		this.addControl(this.panel);
 35 	},
 36 	
 37 	/**
 38 	 * By default we extract data.name to show in the item render.
 39 	 * 
 40 	 * overwrite to implement your own logic
 41 	 */
 42 	updateDisplay : function()
 43 	{
 44 		var index = this.listRender.getNodeDataByData(this.data);
 45 		{
 46 			if (this.data && this.data.name && this.label)
 47 			{
 48 				this.label.setData(this.data.name);
 49 			}
 50 		}		
 51 	},
 52 	
 53 	/**
 54 	 * Invoked when user clicks on the item
 55 	 */
 56 	select : function()
 57 	{
 58 		this.panel.addCssClass('BDataGridTreeItemRenderSelected');
 59 	},
 60 	
 61 	/**
 62 	 * Invoked when the user selects/deselects another item
 63 	 */
 64 	deselect : function()
 65 	{
 66 		this.panel.removeCssClass('BDataGridTreeItemRenderSelected');
 67 	},
 68 	
 69 	/**
 70 	 * by default we return true here.
 71 	 * @return {boolean}
 72 	 */
 73 	getIsSelectable : function()
 74 	{
 75 		return true;
 76 	}
 77 });