/** * Allows GroupTab to render a table structure. */ Ext.define('Ext.ux.GroupTabRenderer', { extend: 'Ext.plugin.Abstract', alias: 'plugin.grouptabrenderer', tableTpl: new Ext.XTemplate( '
', '{%', 'values.view.renderRows(values.rows, values.viewStartIndex, out);', '%}', '
', { priority: 5 } ), rowTpl: new Ext.XTemplate( '{%', 'Ext.Array.remove(values.itemClasses, "', Ext.baseCSSPrefix + 'grid-row");', 'var dataRowCls = values.recordIndex === -1 ? "" : " ' + Ext.baseCSSPrefix + 'grid-data-row";', '%}', '
', '' + '{%', 'parent.view.renderCell(values, parent.record, parent.recordIndex, parent.rowIndex, xindex - 1, out, parent)', '%}', '', '
', { priority: 5 } ), cellTpl: new Ext.XTemplate( '{%values.tdCls = values.tdCls.replace(" ' + Ext.baseCSSPrefix + 'grid-cell "," ");%}', '
', '
{value}
', '
', '
', '
', { priority: 5 } ), selectors: { // Outer table bodySelector: 'div.' + Ext.baseCSSPrefix + 'grid-table-resizer', // Element which contains rows nodeContainerSelector: 'div.' + Ext.baseCSSPrefix + 'grid-table-resizer', // row itemSelector: 'div.' + Ext.baseCSSPrefix + 'grouptab-row', // row which contains cells as opposed to wrapping rows rowSelector: 'div.' + Ext.baseCSSPrefix + 'grouptab-row', // cell cellSelector: 'div.' + Ext.baseCSSPrefix + 'grouptab-cell', getCellSelector: function(header) { return header ? header.getCellSelector() : this.cellSelector; } }, init: function(grid) { var view = grid.getView(), me = this; view.addTpl(me.tableTpl); view.addRowTpl(me.rowTpl); view.addCellTpl(me.cellTpl); Ext.apply(view, me.selectors); } });