4 * Copyright(c) 2006-2007, Ext JS, LLC.
6 * Originally Released Under LGPL - original licence link has changed is not relivant.
9 * <script type="text/javascript">
12 * @class Roo.grid.AbstractGridView
13 * @extends Roo.util.Observable
15 * Abstract base class for grid Views
18 Roo.grid.AbstractGridView = function(){
22 "beforerowremoved" : true,
23 "beforerowsinserted" : true,
24 "beforerefresh" : true,
26 "rowsinserted" : true,
30 Roo.grid.AbstractGridView.superclass.constructor.call(this);
33 Roo.extend(Roo.grid.AbstractGridView, Roo.util.Observable, {
34 rowClass : "x-grid-row",
35 cellClass : "x-grid-cell",
36 tdClass : "x-grid-td",
37 hdClass : "x-grid-hd",
38 splitClass : "x-grid-hd-split",
42 var cid = this.grid.getGridEl().id;
43 this.colSelector = "#" + cid + " ." + this.cellClass + "-";
44 this.tdSelector = "#" + cid + " ." + this.tdClass + "-";
45 this.hdSelector = "#" + cid + " ." + this.hdClass + "-";
46 this.splitSelector = "#" + cid + " ." + this.splitClass + "-";
49 getColumnRenderers : function(){
51 var cm = this.grid.colModel;
52 var colCount = cm.getColumnCount();
53 for(var i = 0; i < colCount; i++){
54 renderers[i] = cm.getRenderer(i);
59 getColumnIds : function(){
61 var cm = this.grid.colModel;
62 var colCount = cm.getColumnCount();
63 for(var i = 0; i < colCount; i++){
64 ids[i] = cm.getColumnId(i);
69 getDataIndexes : function(){
71 this.indexMap = this.buildIndexMap();
73 return this.indexMap.colToData;
76 getColumnIndexByDataIndex : function(dataIndex){
78 this.indexMap = this.buildIndexMap();
80 return this.indexMap.dataToCol[dataIndex];
84 * Set a css style for a column dynamically.
85 * @param {Number} colIndex The index of the column
86 * @param {String} name The css property name
87 * @param {String} value The css value
89 setCSSStyle : function(colIndex, name, value){
90 var selector = "#" + this.grid.id + " .x-grid-col-" + colIndex;
91 Roo.util.CSS.updateRule(selector, name, value);
94 generateRules : function(cm){
95 var ruleBuf = [], rulesId = this.grid.id + '-cssrules';
96 Roo.util.CSS.removeStyleSheet(rulesId);
97 for(var i = 0, len = cm.getColumnCount(); i < len; i++){
98 var cid = cm.getColumnId(i);
99 ruleBuf.push(this.colSelector, cid, " {\n", cm.config[i].css, "}\n",
100 this.tdSelector, cid, " {\n}\n",
101 this.hdSelector, cid, " {\n}\n",
102 this.splitSelector, cid, " {\n}\n");
104 return Roo.util.CSS.createStyleSheet(ruleBuf.join(""), rulesId);