]> git.proxmox.com Git - extjs.git/blame - extjs/packages/ux/classic/src/GroupTabRenderer.js
add extjs 6.0.1 sources
[extjs.git] / extjs / packages / ux / classic / src / GroupTabRenderer.js
CommitLineData
6527f429
DM
1/**\r
2* Allows GroupTab to render a table structure.\r
3*/\r
4Ext.define('Ext.ux.GroupTabRenderer', {\r
5 extend: 'Ext.plugin.Abstract',\r
6 alias: 'plugin.grouptabrenderer',\r
7\r
8 tableTpl: new Ext.XTemplate(\r
9 '<div id="{view.id}-body" class="' + Ext.baseCSSPrefix + '{view.id}-table ' + Ext.baseCSSPrefix + 'grid-table-resizer" style="{tableStyle}">',\r
10 '{%',\r
11 'values.view.renderRows(values.rows, values.viewStartIndex, out);',\r
12 '%}',\r
13 '</div>',\r
14 {\r
15 priority: 5\r
16 }\r
17 ),\r
18\r
19 rowTpl: new Ext.XTemplate(\r
20 '{%',\r
21 'Ext.Array.remove(values.itemClasses, "', Ext.baseCSSPrefix + 'grid-row");',\r
22 'var dataRowCls = values.recordIndex === -1 ? "" : " ' + Ext.baseCSSPrefix + 'grid-data-row";',\r
23 '%}',\r
24 '<div {[values.rowId ? ("id=\\"" + values.rowId + "\\"") : ""]} ',\r
25 'data-boundView="{view.id}" ',\r
26 'data-recordId="{record.internalId}" ',\r
27 'data-recordIndex="{recordIndex}" ',\r
28 'class="' + Ext.baseCSSPrefix + 'grouptab-row {[values.itemClasses.join(" ")]} {[values.rowClasses.join(" ")]}{[dataRowCls]}" ',\r
29 '{rowAttr:attributes}>',\r
30 '<tpl for="columns">' +\r
31 '{%',\r
32 'parent.view.renderCell(values, parent.record, parent.recordIndex, parent.rowIndex, xindex - 1, out, parent)',\r
33 '%}',\r
34 '</tpl>',\r
35 '</div>',\r
36 {\r
37 priority: 5\r
38 }\r
39 ),\r
40\r
41 cellTpl: new Ext.XTemplate(\r
42 '{%values.tdCls = values.tdCls.replace(" ' + Ext.baseCSSPrefix + 'grid-cell "," ");%}',\r
43 '<div class="' + Ext.baseCSSPrefix + 'grouptab-cell {tdCls}" {tdAttr}>',\r
44 '<div {unselectableAttr} class="' + Ext.baseCSSPrefix + 'grid-cell-inner" style="text-align: {align}; {style};">{value}</div>',\r
45 '<div class="x-grouptabs-corner x-grouptabs-corner-top-left"></div>',\r
46 '<div class="x-grouptabs-corner x-grouptabs-corner-bottom-left"></div>',\r
47 '</div>',\r
48 {\r
49 priority: 5\r
50 }\r
51 ),\r
52\r
53 selectors: {\r
54 // Outer table\r
55 bodySelector: 'div.' + Ext.baseCSSPrefix + 'grid-table-resizer',\r
56\r
57 // Element which contains rows\r
58 nodeContainerSelector: 'div.' + Ext.baseCSSPrefix + 'grid-table-resizer',\r
59\r
60 // row\r
61 itemSelector: 'div.' + Ext.baseCSSPrefix + 'grouptab-row',\r
62\r
63 // row which contains cells as opposed to wrapping rows\r
64 rowSelector: 'div.' + Ext.baseCSSPrefix + 'grouptab-row',\r
65\r
66 // cell\r
67 cellSelector: 'div.' + Ext.baseCSSPrefix + 'grouptab-cell', \r
68\r
69 getCellSelector: function(header) {\r
70 return header ? header.getCellSelector() : this.cellSelector; \r
71 }\r
72\r
73 },\r
74\r
75 init: function(grid) {\r
76 var view = grid.getView(), \r
77 me = this;\r
78 view.addTpl(me.tableTpl);\r
79 view.addRowTpl(me.rowTpl);\r
80 view.addCellTpl(me.cellTpl);\r
81 Ext.apply(view, me.selectors);\r
82 }\r
83});\r
84\r
85\r
86\r