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