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