1 /** 2 * @author Gillis Haasnoot <gillis.haasnoot@gmail.com> 3 * @package Banana.Controls 4 * @summary DataGridTableHeaderItemRender 5 */ 6 7 goog.require('Banana.Controls.DataGridTableItemRender'); 8 9 goog.provide('Banana.Controls.DataGridTableHeaderItemRender'); 10 11 /** @namespace Banana.Controls.DataGridTableHeaderItemRender */ 12 namespace('Banana.Controls').DataGridTableHeaderItemRender = Banana.Controls.DataGridTableItemRender.extend( 13 /** @lends Banana.Controls.DataGridTableHeaderItemRender.prototype */ 14 { 15 /** 16 * Creates a datagrid table header 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 var columns = this.listRender.columns; 32 33 for (var i =0, len = columns.length; i < len; i++) 34 { 35 var col = new Banana.Controls.DataGridHeaderCol(); 36 37 if (columns[i].visible == false) continue; 38 39 col.sortField = columns[i].sortField; 40 41 col.setStyle('text-align:left;'+columns[i].getStyle()); 42 43 if (columns[i].sortField) 44 { 45 col.setStyle('cursor:pointer;text-align:left;'+columns[i].getHeaderStyle()); 46 47 col.bind('click',this.getProxy(function(e,f){ 48 49 this.listRender.triggerEvent('sort',e.data) 50 51 }),columns[i].sortField); 52 } 53 54 col.addControl(columns[i].getHeaderText()); 55 this.addControl(col); 56 } 57 } 58 });