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 });