commit extjs-2.2.1
[extjs.git] / source / widgets / grid / RowNumberer.js
1 /*\r
2  * Ext JS Library 2.2.1\r
3  * Copyright(c) 2006-2009, Ext JS, LLC.\r
4  * licensing@extjs.com\r
5  * \r
6  * http://extjs.com/license\r
7  */\r
8 \r
9 /**\r
10  * @class Ext.grid.RowNumberer\r
11  * This is a utility class that can be passed into a {@link Ext.grid.ColumnModel} as a column config that provides\r
12  * an automatic row numbering column.\r
13  * <br>Usage:<br>\r
14  <pre><code>\r
15  // This is a typical column config with the first column providing row numbers\r
16  var colModel = new Ext.grid.ColumnModel([\r
17     new Ext.grid.RowNumberer(),\r
18     {header: "Name", width: 80, sortable: true},\r
19     {header: "Code", width: 50, sortable: true},\r
20     {header: "Description", width: 200, sortable: true}\r
21  ]);\r
22  </code></pre>\r
23  * @constructor\r
24  * @param {Object} config The configuration options\r
25 */\r
26 Ext.grid.RowNumberer = function(config){\r
27     Ext.apply(this, config);\r
28     if(this.rowspan){\r
29         this.renderer = this.renderer.createDelegate(this);\r
30     }\r
31 };\r
32 \r
33 Ext.grid.RowNumberer.prototype = {\r
34     /**\r
35      * @cfg {String} header Any valid text or HTML fragment to display in the header cell for the row\r
36      * number column (defaults to '').\r
37      */\r
38     header: "",\r
39     /**\r
40      * @cfg {Number} width The default width in pixels of the row number column (defaults to 23).\r
41      */\r
42     width: 23,\r
43     /**\r
44      * @cfg {Boolean} sortable True if the row number column is sortable (defaults to false).\r
45      * @hide\r
46      */\r
47     sortable: false,\r
48 \r
49     // private\r
50     fixed:true,\r
51     menuDisabled:true,\r
52     dataIndex: '',\r
53     id: 'numberer',\r
54     rowspan: undefined,\r
55 \r
56     // private\r
57     renderer : function(v, p, record, rowIndex){\r
58         if(this.rowspan){\r
59             p.cellAttr = 'rowspan="'+this.rowspan+'"';\r
60         }\r
61         return rowIndex+1;\r
62     }\r
63 };