de25b78e1416cfbf6f251b3e1955c39960a1db9f
[roojs1] / docs / symbols / src / Roo_grid_GridView.js.html
1 <html><head><title>../roojs1/Roo/grid/GridView.js</title><link rel="stylesheet" type="text/css" href="../../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
2  * Based on:
3  * Ext JS Library 1.1.1
4  * Copyright(c) 2006-2007, Ext JS, LLC.
5  *
6  * Originally Released Under LGPL - original licence link has changed is not relivant.
7  *
8  * Fork - LGPL
9  * &lt;script type=&quot;text/javascript&quot;&gt;
10  */
11   
12 /**
13  * @class Roo.grid.GridView
14  * @extends Roo.util.Observable
15  *
16  * @constructor
17  * @param {Object} config
18  */
19 </span><span class="jsdoc-var">Roo.grid.GridView </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
20     </span><span class="jsdoc-var">Roo.grid.GridView.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
21     </span><span class="jsdoc-var">this.el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
22
23     </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
24 };
25
26 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.grid.GridView</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.grid.AbstractGridView</span><span class="jsdoc-syntax">, {
27
28     </span><span class="jsdoc-comment">/**
29      * Override this function to apply custom css classes to rows during rendering
30      * @param {Record} record The record
31      * @param {Number} index
32      * @method getRowClass
33      */
34     </span><span class="jsdoc-var">rowClass </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;x-grid-row&quot;</span><span class="jsdoc-syntax">,
35
36     </span><span class="jsdoc-var">cellClass </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;x-grid-col&quot;</span><span class="jsdoc-syntax">,
37
38     </span><span class="jsdoc-var">tdClass </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;x-grid-td&quot;</span><span class="jsdoc-syntax">,
39
40     </span><span class="jsdoc-var">hdClass </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;x-grid-hd&quot;</span><span class="jsdoc-syntax">,
41
42     </span><span class="jsdoc-var">splitClass </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;x-grid-split&quot;</span><span class="jsdoc-syntax">,
43
44     </span><span class="jsdoc-var">sortClasses </span><span class="jsdoc-syntax">: [</span><span class="jsdoc-string">&quot;sort-asc&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;sort-desc&quot;</span><span class="jsdoc-syntax">],
45
46     </span><span class="jsdoc-var">enableMoveAnim </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
47
48     </span><span class="jsdoc-var">hlColor</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;C3DAF9&quot;</span><span class="jsdoc-syntax">,
49
50     </span><span class="jsdoc-var">dh </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.DomHelper</span><span class="jsdoc-syntax">,
51
52     </span><span class="jsdoc-var">fly </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.Element.fly</span><span class="jsdoc-syntax">,
53
54     </span><span class="jsdoc-var">css </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.util.CSS</span><span class="jsdoc-syntax">,
55
56     </span><span class="jsdoc-var">borderWidth</span><span class="jsdoc-syntax">: 1,
57
58     </span><span class="jsdoc-var">splitOffset</span><span class="jsdoc-syntax">: 3,
59
60     </span><span class="jsdoc-var">scrollIncrement </span><span class="jsdoc-syntax">: 22,
61
62     </span><span class="jsdoc-var">cellRE</span><span class="jsdoc-syntax">: /(?:.*?)x-grid-(?:hd|cell|csplit)-(?:[\d]+)-([\d]+)(?:.*?)/,
63
64     </span><span class="jsdoc-var">findRE</span><span class="jsdoc-syntax">: /\s?(?:x-grid-hd|x-grid-col|x-grid-csplit)\s/,
65
66     </span><span class="jsdoc-var">bind </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ds</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cm</span><span class="jsdoc-syntax">){
67         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.ds</span><span class="jsdoc-syntax">){
68             </span><span class="jsdoc-var">this.ds.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;load&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onLoad</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
69             </span><span class="jsdoc-var">this.ds.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;datachanged&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onDataChange</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
70             </span><span class="jsdoc-var">this.ds.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;add&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onAdd</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
71             </span><span class="jsdoc-var">this.ds.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;remove&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onRemove</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
72             </span><span class="jsdoc-var">this.ds.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;update&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onUpdate</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
73             </span><span class="jsdoc-var">this.ds.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;clear&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onClear</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
74         }
75         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ds</span><span class="jsdoc-syntax">){
76             </span><span class="jsdoc-var">ds.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;load&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onLoad</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
77             </span><span class="jsdoc-var">ds.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;datachanged&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onDataChange</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
78             </span><span class="jsdoc-var">ds.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;add&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onAdd</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
79             </span><span class="jsdoc-var">ds.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;remove&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onRemove</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
80             </span><span class="jsdoc-var">ds.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;update&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onUpdate</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
81             </span><span class="jsdoc-var">ds.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;clear&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onClear</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
82         }
83         </span><span class="jsdoc-var">this.ds </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ds</span><span class="jsdoc-syntax">;
84
85         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.cm</span><span class="jsdoc-syntax">){
86             </span><span class="jsdoc-var">this.cm.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;widthchange&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onColWidthChange</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
87             </span><span class="jsdoc-var">this.cm.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;headerchange&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onHeaderChange</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
88             </span><span class="jsdoc-var">this.cm.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;hiddenchange&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onHiddenChange</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
89             </span><span class="jsdoc-var">this.cm.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;columnmoved&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onColumnMove</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
90             </span><span class="jsdoc-var">this.cm.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;columnlockchange&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onColumnLock</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
91         }
92         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cm</span><span class="jsdoc-syntax">){
93             </span><span class="jsdoc-var">this.generateRules</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cm</span><span class="jsdoc-syntax">);
94             </span><span class="jsdoc-var">cm.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;widthchange&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onColWidthChange</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
95             </span><span class="jsdoc-var">cm.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;headerchange&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onHeaderChange</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
96             </span><span class="jsdoc-var">cm.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;hiddenchange&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onHiddenChange</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
97             </span><span class="jsdoc-var">cm.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;columnmoved&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onColumnMove</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
98             </span><span class="jsdoc-var">cm.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;columnlockchange&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onColumnLock</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
99         }
100         </span><span class="jsdoc-var">this.cm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm</span><span class="jsdoc-syntax">;
101     },
102
103     </span><span class="jsdoc-var">init</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">grid</span><span class="jsdoc-syntax">){
104                 </span><span class="jsdoc-var">Roo.grid.GridView.superclass.init.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">grid</span><span class="jsdoc-syntax">);
105
106                 </span><span class="jsdoc-var">this.bind</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">grid.dataSource</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">grid.colModel</span><span class="jsdoc-syntax">);
107
108             </span><span class="jsdoc-var">grid.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;headerclick&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.handleHeaderClick</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
109
110         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">grid.trackMouseOver</span><span class="jsdoc-syntax">){
111             </span><span class="jsdoc-var">grid.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;mouseover&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onRowOver</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
112                 </span><span class="jsdoc-var">grid.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;mouseout&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onRowOut</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
113             }
114             </span><span class="jsdoc-var">grid.cancelTextSelection </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){};
115                 </span><span class="jsdoc-var">this.gridId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">grid.id</span><span class="jsdoc-syntax">;
116
117                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tpls </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.templates </span><span class="jsdoc-syntax">|| {};
118
119                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">tpls.master</span><span class="jsdoc-syntax">){
120                     </span><span class="jsdoc-var">tpls.master </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Template</span><span class="jsdoc-syntax">(
121                        </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid&quot; hidefocus=&quot;true&quot;&gt;'</span><span class="jsdoc-syntax">,
122                           </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid-topbar&quot;&gt;&lt;/div&gt;'</span><span class="jsdoc-syntax">,
123                           </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid-scroller&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;'</span><span class="jsdoc-syntax">,
124                           </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid-locked&quot;&gt;'</span><span class="jsdoc-syntax">,
125                               </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid-header&quot;&gt;{lockedHeader}&lt;/div&gt;'</span><span class="jsdoc-syntax">,
126                               </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid-body&quot;&gt;{lockedBody}&lt;/div&gt;'</span><span class="jsdoc-syntax">,
127                           </span><span class="jsdoc-string">&quot;&lt;/div&gt;&quot;</span><span class="jsdoc-syntax">,
128                           </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid-viewport&quot;&gt;'</span><span class="jsdoc-syntax">,
129                               </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid-header&quot;&gt;{header}&lt;/div&gt;'</span><span class="jsdoc-syntax">,
130                               </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid-body&quot;&gt;{body}&lt;/div&gt;'</span><span class="jsdoc-syntax">,
131                           </span><span class="jsdoc-string">&quot;&lt;/div&gt;&quot;</span><span class="jsdoc-syntax">,
132                           </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid-bottombar&quot;&gt;&lt;/div&gt;'</span><span class="jsdoc-syntax">,
133                           </span><span class="jsdoc-string">'&lt;a href=&quot;#&quot; class=&quot;x-grid-focus&quot; tabIndex=&quot;-1&quot;&gt;&lt;/a&gt;'</span><span class="jsdoc-syntax">,
134                           </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid-resize-proxy&quot;&gt;&amp;#160;&lt;/div&gt;'</span><span class="jsdoc-syntax">,
135                        </span><span class="jsdoc-string">&quot;&lt;/div&gt;&quot;
136                     </span><span class="jsdoc-syntax">);
137                     </span><span class="jsdoc-var">tpls.master.disableformats </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
138                 }
139
140                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">tpls.header</span><span class="jsdoc-syntax">){
141                     </span><span class="jsdoc-var">tpls.header </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Template</span><span class="jsdoc-syntax">(
142                        </span><span class="jsdoc-string">'&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;'</span><span class="jsdoc-syntax">,
143                        </span><span class="jsdoc-string">'&lt;tbody&gt;&lt;tr class=&quot;x-grid-hd-row&quot;&gt;{cells}&lt;/tr&gt;&lt;/tbody&gt;'</span><span class="jsdoc-syntax">,
144                        </span><span class="jsdoc-string">&quot;&lt;/table&gt;{splits}&quot;
145                     </span><span class="jsdoc-syntax">);
146                     </span><span class="jsdoc-var">tpls.header.disableformats </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
147                 }
148                 </span><span class="jsdoc-var">tpls.header.compile</span><span class="jsdoc-syntax">();
149
150                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">tpls.hcell</span><span class="jsdoc-syntax">){
151                     </span><span class="jsdoc-var">tpls.hcell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Template</span><span class="jsdoc-syntax">(
152                         </span><span class="jsdoc-string">'&lt;td class=&quot;x-grid-hd x-grid-td-{id} {cellId}&quot;&gt;&lt;div title=&quot;{title}&quot; class=&quot;x-grid-hd-inner x-grid-hd-{id}&quot;&gt;'</span><span class="jsdoc-syntax">,
153                         </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid-hd-text&quot; unselectable=&quot;on&quot;&gt;{value}&lt;img class=&quot;x-grid-sort-icon&quot; src=&quot;'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.BLANK_IMAGE_URL</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'&quot; /&gt;&lt;/div&gt;'</span><span class="jsdoc-syntax">,
154                         </span><span class="jsdoc-string">&quot;&lt;/div&gt;&lt;/td&gt;&quot;
155                      </span><span class="jsdoc-syntax">);
156                      </span><span class="jsdoc-var">tpls.hcell.disableFormats </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
157                 }
158                 </span><span class="jsdoc-var">tpls.hcell.compile</span><span class="jsdoc-syntax">();
159
160                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">tpls.hsplit</span><span class="jsdoc-syntax">){
161                     </span><span class="jsdoc-var">tpls.hsplit </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Template</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'&lt;div class=&quot;x-grid-split {splitId} x-grid-split-{id}&quot; style=&quot;{style}&quot; unselectable=&quot;on&quot;&gt;&amp;#160;&lt;/div&gt;'</span><span class="jsdoc-syntax">);
162                     </span><span class="jsdoc-var">tpls.hsplit.disableFormats </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
163                 }
164                 </span><span class="jsdoc-var">tpls.hsplit.compile</span><span class="jsdoc-syntax">();
165
166                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">tpls.body</span><span class="jsdoc-syntax">){
167                     </span><span class="jsdoc-var">tpls.body </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Template</span><span class="jsdoc-syntax">(
168                        </span><span class="jsdoc-string">'&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;'</span><span class="jsdoc-syntax">,
169                        </span><span class="jsdoc-string">&quot;&lt;tbody&gt;{rows}&lt;/tbody&gt;&quot;</span><span class="jsdoc-syntax">,
170                        </span><span class="jsdoc-string">&quot;&lt;/table&gt;&quot;
171                     </span><span class="jsdoc-syntax">);
172                     </span><span class="jsdoc-var">tpls.body.disableFormats </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
173                 }
174                 </span><span class="jsdoc-var">tpls.body.compile</span><span class="jsdoc-syntax">();
175
176                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">tpls.row</span><span class="jsdoc-syntax">){
177                     </span><span class="jsdoc-var">tpls.row </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Template</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'&lt;tr class=&quot;x-grid-row {alt}&quot;&gt;{cells}&lt;/tr&gt;'</span><span class="jsdoc-syntax">);
178                     </span><span class="jsdoc-var">tpls.row.disableFormats </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
179                 }
180                 </span><span class="jsdoc-var">tpls.row.compile</span><span class="jsdoc-syntax">();
181
182                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">tpls.cell</span><span class="jsdoc-syntax">){
183                     </span><span class="jsdoc-var">tpls.cell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Template</span><span class="jsdoc-syntax">(
184                         </span><span class="jsdoc-string">'&lt;td class=&quot;x-grid-col x-grid-td-{id} {cellId} {css}&quot; tabIndex=&quot;0&quot;&gt;'</span><span class="jsdoc-syntax">,
185                         </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid-col-{id} x-grid-cell-inner&quot;&gt;&lt;div class=&quot;x-grid-cell-text&quot; unselectable=&quot;on&quot; {attr}&gt;{value}&lt;/div&gt;&lt;/div&gt;'</span><span class="jsdoc-syntax">,
186                         </span><span class="jsdoc-string">&quot;&lt;/td&gt;&quot;
187                     </span><span class="jsdoc-syntax">);
188             </span><span class="jsdoc-var">tpls.cell.disableFormats </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
189         }
190                 </span><span class="jsdoc-var">tpls.cell.compile</span><span class="jsdoc-syntax">();
191
192                 </span><span class="jsdoc-var">this.templates </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">tpls</span><span class="jsdoc-syntax">;
193         },
194
195         </span><span class="jsdoc-comment">// remap these for backwards compat
196     </span><span class="jsdoc-var">onColWidthChange </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
197         </span><span class="jsdoc-var">this.updateColumns.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
198     },
199     </span><span class="jsdoc-var">onHeaderChange </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
200         </span><span class="jsdoc-var">this.updateHeaders.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
201     }, 
202     </span><span class="jsdoc-var">onHiddenChange </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
203         </span><span class="jsdoc-var">this.handleHiddenChange.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
204     },
205     </span><span class="jsdoc-var">onColumnMove </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
206         </span><span class="jsdoc-var">this.handleColumnMove.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
207     },
208     </span><span class="jsdoc-var">onColumnLock </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
209         </span><span class="jsdoc-var">this.handleLockChange.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
210     },
211
212     </span><span class="jsdoc-var">onDataChange </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
213         </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">();
214         </span><span class="jsdoc-var">this.updateHeaderSortState</span><span class="jsdoc-syntax">();
215     },
216
217         </span><span class="jsdoc-var">onClear </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
218         </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">();
219     },
220
221         </span><span class="jsdoc-var">onUpdate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ds</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">){
222         </span><span class="jsdoc-var">this.refreshRow</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">);
223     },
224
225     </span><span class="jsdoc-var">refreshRow </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">){
226         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ds </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.ds</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">;
227         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">record </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'number'</span><span class="jsdoc-syntax">){
228             </span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">;
229             </span><span class="jsdoc-var">record </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ds.getAt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
230         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
231             </span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ds.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">);
232         }
233         </span><span class="jsdoc-var">this.insertRows</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ds</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
234         </span><span class="jsdoc-var">this.onRemove</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ds</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">+1, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
235         </span><span class="jsdoc-var">this.syncRowHeights</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
236         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
237         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;rowupdated&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">);
238     },
239
240     </span><span class="jsdoc-var">onAdd </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ds</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">records</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">){
241         </span><span class="jsdoc-var">this.insertRows</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ds</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">+ (</span><span class="jsdoc-var">records.length</span><span class="jsdoc-syntax">-1));
242     },
243
244     </span><span class="jsdoc-var">onRemove </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ds</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">isUpdate</span><span class="jsdoc-syntax">){
245         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isUpdate </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
246             </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforerowremoved&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">);
247         }
248         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">bt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getBodyTable</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">lt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getLockedTable</span><span class="jsdoc-syntax">();
249         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">bt.rows</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">]){
250             </span><span class="jsdoc-var">bt.firstChild.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">bt.rows</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">]);
251         }
252         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">lt.rows</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">]){
253             </span><span class="jsdoc-var">lt.firstChild.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">lt.rows</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">]);
254         }
255         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isUpdate </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
256             </span><span class="jsdoc-var">this.stripeRows</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
257             </span><span class="jsdoc-var">this.syncRowHeights</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
258             </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
259             </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;rowremoved&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">);
260         }
261     },
262
263     </span><span class="jsdoc-var">onLoad </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
264         </span><span class="jsdoc-var">this.scrollToTop</span><span class="jsdoc-syntax">();
265     },
266
267     </span><span class="jsdoc-comment">/**
268      * Scrolls the grid to the top
269      */
270     </span><span class="jsdoc-var">scrollToTop </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
271         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.scroller</span><span class="jsdoc-syntax">){
272             </span><span class="jsdoc-var">this.scroller.dom.scrollTop </span><span class="jsdoc-syntax">= 0;
273             </span><span class="jsdoc-var">this.syncScroll</span><span class="jsdoc-syntax">();
274         }
275     },
276
277     </span><span class="jsdoc-comment">/**
278      * Gets a panel in the header of the grid that can be used for toolbars etc.
279      * After modifying the contents of this panel a call to grid.autoSize() may be
280      * required to register any changes in size.
281      * @param {Boolean} doShow By default the header is hidden. Pass true to show the panel
282      * @return Roo.Element
283      */
284     </span><span class="jsdoc-var">getHeaderPanel </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">doShow</span><span class="jsdoc-syntax">){
285         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">doShow</span><span class="jsdoc-syntax">){
286             </span><span class="jsdoc-var">this.headerPanel.show</span><span class="jsdoc-syntax">();
287         }
288         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.headerPanel</span><span class="jsdoc-syntax">;
289         },
290
291         </span><span class="jsdoc-comment">/**
292      * Gets a panel in the footer of the grid that can be used for toolbars etc.
293      * After modifying the contents of this panel a call to grid.autoSize() may be
294      * required to register any changes in size.
295      * @param {Boolean} doShow By default the footer is hidden. Pass true to show the panel
296      * @return Roo.Element
297      */
298     </span><span class="jsdoc-var">getFooterPanel </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">doShow</span><span class="jsdoc-syntax">){
299         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">doShow</span><span class="jsdoc-syntax">){
300             </span><span class="jsdoc-var">this.footerPanel.show</span><span class="jsdoc-syntax">();
301         }
302         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.footerPanel</span><span class="jsdoc-syntax">;
303         },
304
305         </span><span class="jsdoc-var">initElements </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
306             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">E </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.Element</span><span class="jsdoc-syntax">;
307             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.grid.getGridEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.dom.firstChild</span><span class="jsdoc-syntax">;
308             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el.childNodes</span><span class="jsdoc-syntax">;
309
310             </span><span class="jsdoc-var">this.el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">E</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">);
311             </span><span class="jsdoc-var">this.headerPanel </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">E</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.firstChild</span><span class="jsdoc-syntax">);
312             </span><span class="jsdoc-var">this.headerPanel.enableDisplayMode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;block&quot;</span><span class="jsdoc-syntax">);
313
314         </span><span class="jsdoc-var">this.scroller </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">E</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cs</span><span class="jsdoc-syntax">[1]);
315             </span><span class="jsdoc-var">this.scrollSizer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">E</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.scroller.dom.firstChild</span><span class="jsdoc-syntax">);
316
317             </span><span class="jsdoc-var">this.lockedWrap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">E</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cs</span><span class="jsdoc-syntax">[2]);
318             </span><span class="jsdoc-var">this.lockedHd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">E</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.lockedWrap.dom.firstChild</span><span class="jsdoc-syntax">);
319             </span><span class="jsdoc-var">this.lockedBody </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">E</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.lockedWrap.dom.childNodes</span><span class="jsdoc-syntax">[1]);
320
321             </span><span class="jsdoc-var">this.mainWrap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">E</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cs</span><span class="jsdoc-syntax">[3]);
322             </span><span class="jsdoc-var">this.mainHd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">E</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.mainWrap.dom.firstChild</span><span class="jsdoc-syntax">);
323             </span><span class="jsdoc-var">this.mainBody </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">E</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.mainWrap.dom.childNodes</span><span class="jsdoc-syntax">[1]);
324
325             </span><span class="jsdoc-var">this.footerPanel </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">E</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cs</span><span class="jsdoc-syntax">[4]);
326             </span><span class="jsdoc-var">this.footerPanel.enableDisplayMode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;block&quot;</span><span class="jsdoc-syntax">);
327
328         </span><span class="jsdoc-var">this.focusEl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">E</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cs</span><span class="jsdoc-syntax">[5]);
329         </span><span class="jsdoc-var">this.focusEl.swallowEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;click&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
330         </span><span class="jsdoc-var">this.resizeProxy </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">E</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cs</span><span class="jsdoc-syntax">[6]);
331
332             </span><span class="jsdoc-var">this.headerSelector </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">String.format</span><span class="jsdoc-syntax">(
333                </span><span class="jsdoc-string">'#{0} td.x-grid-hd, #{1} td.x-grid-hd'</span><span class="jsdoc-syntax">,
334                </span><span class="jsdoc-var">this.lockedHd.id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.mainHd.id
335             </span><span class="jsdoc-syntax">);
336
337             </span><span class="jsdoc-var">this.splitterSelector </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">String.format</span><span class="jsdoc-syntax">(
338                </span><span class="jsdoc-string">'#{0} div.x-grid-split, #{1} div.x-grid-split'</span><span class="jsdoc-syntax">,
339                </span><span class="jsdoc-var">this.idToCssName</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.lockedHd.id</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">this.idToCssName</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.mainHd.id</span><span class="jsdoc-syntax">)
340             );
341     },
342     </span><span class="jsdoc-var">idToCssName </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">)
343     {
344         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">s.replace</span><span class="jsdoc-syntax">(/[^a-z0-9]+/ig, </span><span class="jsdoc-string">'-'</span><span class="jsdoc-syntax">);
345     },
346
347         </span><span class="jsdoc-var">getHeaderCell </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">){
348             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Roo.DomQuery.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.headerSelector</span><span class="jsdoc-syntax">)[</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">];
349         },
350
351         </span><span class="jsdoc-var">getHeaderCellMeasure </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">){
352             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.getHeaderCell</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.firstChild</span><span class="jsdoc-syntax">;
353         },
354
355         </span><span class="jsdoc-var">getHeaderCellText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">){
356             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.getHeaderCell</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.firstChild.firstChild</span><span class="jsdoc-syntax">;
357         },
358
359         </span><span class="jsdoc-var">getLockedTable </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
360             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.lockedBody.dom.firstChild</span><span class="jsdoc-syntax">;
361         },
362
363         </span><span class="jsdoc-var">getBodyTable </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
364             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.mainBody.dom.firstChild</span><span class="jsdoc-syntax">;
365         },
366
367         </span><span class="jsdoc-var">getLockedRow </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">){
368             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.getLockedTable</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.rows</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">];
369         },
370
371         </span><span class="jsdoc-var">getRow </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">){
372             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.getBodyTable</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.rows</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">];
373         },
374
375         </span><span class="jsdoc-var">getRowComposite </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">){
376             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.rowEl</span><span class="jsdoc-syntax">){
377                 </span><span class="jsdoc-var">this.rowEl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.CompositeElementLite</span><span class="jsdoc-syntax">();
378             }
379         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">els </span><span class="jsdoc-syntax">= [], </span><span class="jsdoc-var">lrow</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">mrow</span><span class="jsdoc-syntax">;
380         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">lrow </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getLockedRow</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">)){
381             </span><span class="jsdoc-var">els.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">lrow</span><span class="jsdoc-syntax">);
382         }
383         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">mrow </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getRow</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">)){
384             </span><span class="jsdoc-var">els.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">mrow</span><span class="jsdoc-syntax">);
385         }
386         </span><span class="jsdoc-var">this.rowEl.elements </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">els</span><span class="jsdoc-syntax">;
387             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.rowEl</span><span class="jsdoc-syntax">;
388         },
389
390         </span><span class="jsdoc-var">getCell </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">){
391             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">locked </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.cm.getLockedCount</span><span class="jsdoc-syntax">();
392             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">source</span><span class="jsdoc-syntax">;
393             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">locked</span><span class="jsdoc-syntax">){
394                 </span><span class="jsdoc-var">source </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.lockedBody.dom.firstChild</span><span class="jsdoc-syntax">;
395             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
396                 </span><span class="jsdoc-var">source </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.mainBody.dom.firstChild</span><span class="jsdoc-syntax">;
397                 </span><span class="jsdoc-var">colIndex </span><span class="jsdoc-syntax">-= </span><span class="jsdoc-var">locked</span><span class="jsdoc-syntax">;
398             }
399         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">source.rows</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.childNodes</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">];
400         },
401
402         </span><span class="jsdoc-var">getCellText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">){
403             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.getCell</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.firstChild.firstChild</span><span class="jsdoc-syntax">;
404         },
405
406         </span><span class="jsdoc-var">getCellBox </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">){
407             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.fly</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.getBox</span><span class="jsdoc-syntax">();
408         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isOpera</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// opera fails to report the Y
409             </span><span class="jsdoc-var">b.y </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cell.offsetTop </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.mainBody.getY</span><span class="jsdoc-syntax">();
410         }
411         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">;
412     },
413
414     </span><span class="jsdoc-var">getCellIndex </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">){
415         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">String</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cell.className</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.match</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.cellRE</span><span class="jsdoc-syntax">);
416         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">){
417             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">parseInt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">[1], 10);
418         }
419         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">0;
420     },
421
422     </span><span class="jsdoc-var">findHeaderIndex </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">){
423         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.fly</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.findParent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;td.&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.hdClass</span><span class="jsdoc-syntax">, 6);
424         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.getCellIndex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
425     },
426
427     </span><span class="jsdoc-var">findHeaderCell </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">){
428         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.fly</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.findParent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;td.&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.hdClass</span><span class="jsdoc-syntax">, 6);
429         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
430     },
431
432     </span><span class="jsdoc-var">findRowIndex </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">){
433         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">){
434             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
435         }
436         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.fly</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.findParent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;tr.&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.rowClass</span><span class="jsdoc-syntax">, 6);
437         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">r.rowIndex </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
438     },
439
440     </span><span class="jsdoc-var">findCellIndex </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">){
441         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">stop </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.dom</span><span class="jsdoc-syntax">;
442         </span><span class="jsdoc-keyword">while</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">node </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">stop</span><span class="jsdoc-syntax">){
443             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.findRE.test</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.className</span><span class="jsdoc-syntax">)){
444                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.getCellIndex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
445             }
446             </span><span class="jsdoc-var">node </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node.parentNode</span><span class="jsdoc-syntax">;
447         }
448         </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
449     },
450
451     </span><span class="jsdoc-var">getColumnId </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">){
452             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.cm.getColumnId</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
453         },
454
455         </span><span class="jsdoc-var">getSplitters </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
456             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.splitterSelector</span><span class="jsdoc-syntax">){
457                </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Roo.DomQuery.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.splitterSelector</span><span class="jsdoc-syntax">);
458             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
459                 </span><span class="jsdoc-keyword">return null</span><span class="jsdoc-syntax">;
460             }
461         },
462
463         </span><span class="jsdoc-var">getSplitter </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">){
464             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.getSplitters</span><span class="jsdoc-syntax">()[</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">];
465         },
466
467     </span><span class="jsdoc-var">onRowOver </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">){
468         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">;
469         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">row </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.findRowIndex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">)) !== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
470             </span><span class="jsdoc-var">this.getRowComposite</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-grid-row-over&quot;</span><span class="jsdoc-syntax">);
471         }
472     },
473
474     </span><span class="jsdoc-var">onRowOut </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">){
475         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">;
476         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">row </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.findRowIndex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">)) !== </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">row </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">this.findRowIndex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.getRelatedTarget</span><span class="jsdoc-syntax">())){
477             </span><span class="jsdoc-var">this.getRowComposite</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.removeClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-grid-row-over&quot;</span><span class="jsdoc-syntax">);
478         }
479     },
480
481     </span><span class="jsdoc-var">renderHeaders </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
482             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.cm</span><span class="jsdoc-syntax">;
483         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ct </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.templates.hcell</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ht </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.templates.header</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">st </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.templates.hsplit</span><span class="jsdoc-syntax">;
484         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cb </span><span class="jsdoc-syntax">= [], </span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">= [], </span><span class="jsdoc-var">sb </span><span class="jsdoc-syntax">= [], </span><span class="jsdoc-var">lsb </span><span class="jsdoc-syntax">= [], </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= {};
485         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getColumnCount</span><span class="jsdoc-syntax">(); </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
486             </span><span class="jsdoc-var">p.cellId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;x-grid-hd-0-&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;
487             </span><span class="jsdoc-var">p.splitId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;x-grid-csplit-0-&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;
488             </span><span class="jsdoc-var">p.id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getColumnId</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">);
489             </span><span class="jsdoc-var">p.title </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getColumnTooltip</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">;
490             </span><span class="jsdoc-var">p.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getColumnHeader</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">;
491             </span><span class="jsdoc-var">p.style </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">this.grid.enableColumnResize </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">cm.isResizable</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-var">cm.isFixed</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">)) ? </span><span class="jsdoc-string">'cursor:default' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
492             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">cm.isLocked</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">)){
493                 </span><span class="jsdoc-var">cb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">cb.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">ct.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">);
494                 </span><span class="jsdoc-var">sb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sb.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">st.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">);
495             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
496                 </span><span class="jsdoc-var">lb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">lb.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">ct.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">);
497                 </span><span class="jsdoc-var">lsb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">lsb.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">st.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">);
498             }
499         }
500         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">ht.apply</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">lb.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">splits</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">lsb.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">)}),
501                 </span><span class="jsdoc-var">ht.apply</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cb.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">splits</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">sb.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">)})];
502         },
503
504         </span><span class="jsdoc-var">updateHeaders </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
505         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.renderHeaders</span><span class="jsdoc-syntax">();
506         </span><span class="jsdoc-var">this.lockedHd.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">[0]);
507         </span><span class="jsdoc-var">this.mainHd.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">[1]);
508     },
509
510     </span><span class="jsdoc-comment">/**
511      * Focuses the specified row.
512      * @param {Number} row The row index
513      */
514     </span><span class="jsdoc-var">focusRow </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">){
515         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">x </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.scroller.dom.scrollLeft</span><span class="jsdoc-syntax">;
516         </span><span class="jsdoc-var">this.focusCell</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">, 0, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
517         </span><span class="jsdoc-var">this.scroller.dom.scrollLeft </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">;
518     },
519
520     </span><span class="jsdoc-comment">/**
521      * Focuses the specified cell.
522      * @param {Number} row The row index
523      * @param {Number} col The column index
524      * @param {Boolean} hscroll false to disable horizontal scrolling
525      */
526     </span><span class="jsdoc-var">focusCell </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">hscroll</span><span class="jsdoc-syntax">){
527         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.ensureVisible</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">hscroll</span><span class="jsdoc-syntax">);
528         </span><span class="jsdoc-var">this.focusEl.alignTo</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;tl-tl&quot;</span><span class="jsdoc-syntax">);
529         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isGecko</span><span class="jsdoc-syntax">){
530             </span><span class="jsdoc-var">this.focusEl.focus</span><span class="jsdoc-syntax">();
531         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
532             </span><span class="jsdoc-var">this.focusEl.focus.defer</span><span class="jsdoc-syntax">(1, </span><span class="jsdoc-var">this.focusEl</span><span class="jsdoc-syntax">);
533         }
534     },
535
536     </span><span class="jsdoc-comment">/**
537      * Scrolls the specified cell into view
538      * @param {Number} row The row index
539      * @param {Number} col The column index
540      * @param {Boolean} hscroll false to disable horizontal scrolling
541      */
542     </span><span class="jsdoc-var">ensureVisible </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">hscroll</span><span class="jsdoc-syntax">){
543         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">row </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-string">&quot;number&quot;</span><span class="jsdoc-syntax">){
544             </span><span class="jsdoc-var">row </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">row.rowIndex</span><span class="jsdoc-syntax">;
545         }
546         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">row </span><span class="jsdoc-syntax">&lt; 0 &amp;&amp; </span><span class="jsdoc-var">row </span><span class="jsdoc-syntax">&gt;= </span><span class="jsdoc-var">this.ds.getCount</span><span class="jsdoc-syntax">()){
547             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
548         }
549         </span><span class="jsdoc-var">col </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">col </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">col </span><span class="jsdoc-syntax">: 0);
550         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.grid.colModel</span><span class="jsdoc-syntax">;
551         </span><span class="jsdoc-keyword">while</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cm.isHidden</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">)){
552             </span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">++;
553         }
554
555         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getCell</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">);
556         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">){
557             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
558         }
559         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.scroller.dom</span><span class="jsdoc-syntax">;
560
561         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ctop </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">parseInt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.offsetTop</span><span class="jsdoc-syntax">, 10);
562         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cleft </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">parseInt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.offsetLeft</span><span class="jsdoc-syntax">, 10);
563         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cbot </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ctop </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">el.offsetHeight</span><span class="jsdoc-syntax">;
564         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cright </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cleft </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">el.offsetWidth</span><span class="jsdoc-syntax">;
565
566         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ch </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">c.clientHeight </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">this.mainHd.dom.offsetHeight</span><span class="jsdoc-syntax">;
567         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">stop </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">parseInt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c.scrollTop</span><span class="jsdoc-syntax">, 10);
568         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sleft </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">parseInt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c.scrollLeft</span><span class="jsdoc-syntax">, 10);
569         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sbot </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">stop </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">ch</span><span class="jsdoc-syntax">;
570         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sright </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">sleft </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">c.clientWidth</span><span class="jsdoc-syntax">;
571
572         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ctop </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">stop</span><span class="jsdoc-syntax">){
573                 </span><span class="jsdoc-var">c.scrollTop </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ctop</span><span class="jsdoc-syntax">;
574         }</span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cbot </span><span class="jsdoc-syntax">&gt; </span><span class="jsdoc-var">sbot</span><span class="jsdoc-syntax">){
575             </span><span class="jsdoc-var">c.scrollTop </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cbot</span><span class="jsdoc-syntax">-</span><span class="jsdoc-var">ch</span><span class="jsdoc-syntax">;
576         }
577
578         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hscroll </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
579             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cleft </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">sleft</span><span class="jsdoc-syntax">){
580                 </span><span class="jsdoc-var">c.scrollLeft </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cleft</span><span class="jsdoc-syntax">;
581             }</span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cright </span><span class="jsdoc-syntax">&gt; </span><span class="jsdoc-var">sright</span><span class="jsdoc-syntax">){
582                 </span><span class="jsdoc-var">c.scrollLeft </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cright</span><span class="jsdoc-syntax">-</span><span class="jsdoc-var">c.clientWidth</span><span class="jsdoc-syntax">;
583             }
584         }
585         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">;
586     },
587
588     </span><span class="jsdoc-var">updateColumns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
589         </span><span class="jsdoc-var">this.grid.stopEditing</span><span class="jsdoc-syntax">();
590         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.grid.colModel</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">colIds </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getColumnIds</span><span class="jsdoc-syntax">();
591         </span><span class="jsdoc-comment">//var totalWidth = cm.getTotalWidth();
592         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">pos </span><span class="jsdoc-syntax">= 0;
593         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getColumnCount</span><span class="jsdoc-syntax">(); </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
594             </span><span class="jsdoc-comment">//if(cm.isHidden(i)) continue;
595             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getColumnWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">);
596             </span><span class="jsdoc-var">this.css.updateRule</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.colSelector</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">this.idToCssName</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIds</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]), </span><span class="jsdoc-string">&quot;width&quot;</span><span class="jsdoc-syntax">, (</span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">this.borderWidth</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">&quot;px&quot;</span><span class="jsdoc-syntax">);
597             </span><span class="jsdoc-var">this.css.updateRule</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hdSelector</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">this.idToCssName</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIds</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]), </span><span class="jsdoc-string">&quot;width&quot;</span><span class="jsdoc-syntax">, (</span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">this.borderWidth</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">&quot;px&quot;</span><span class="jsdoc-syntax">);
598         }
599         </span><span class="jsdoc-var">this.updateSplitters</span><span class="jsdoc-syntax">();
600     },
601
602     </span><span class="jsdoc-var">generateRules </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cm</span><span class="jsdoc-syntax">){
603         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ruleBuf </span><span class="jsdoc-syntax">= [], </span><span class="jsdoc-var">rulesId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.idToCssName</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.id</span><span class="jsdoc-syntax">)+ </span><span class="jsdoc-string">'-cssrules'</span><span class="jsdoc-syntax">;
604         </span><span class="jsdoc-var">Roo.util.CSS.removeStyleSheet</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rulesId</span><span class="jsdoc-syntax">);
605         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getColumnCount</span><span class="jsdoc-syntax">(); </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
606             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getColumnId</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">);
607             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">align </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
608             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cm.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.align</span><span class="jsdoc-syntax">){
609                 </span><span class="jsdoc-var">align </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'text-align:'</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">cm.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.align</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">';'</span><span class="jsdoc-syntax">;
610             }
611             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hidden </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
612             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cm.isHidden</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">)){
613                 </span><span class="jsdoc-var">hidden </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'display:none;'</span><span class="jsdoc-syntax">;
614             }
615             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">width </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;width:&quot; </span><span class="jsdoc-syntax">+ (</span><span class="jsdoc-var">cm.getColumnWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) - </span><span class="jsdoc-var">this.borderWidth</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">&quot;px;&quot;</span><span class="jsdoc-syntax">;
616             </span><span class="jsdoc-var">ruleBuf.push</span><span class="jsdoc-syntax">(
617                     </span><span class="jsdoc-var">this.colSelector</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cid</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot; {\n&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cm.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.css</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">align</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;\n}\n&quot;</span><span class="jsdoc-syntax">,
618                     </span><span class="jsdoc-var">this.hdSelector</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cid</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot; {\n&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">align</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;}\n&quot;</span><span class="jsdoc-syntax">,
619                     </span><span class="jsdoc-var">this.tdSelector</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cid</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot; {\n&quot;</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">hidden</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">&quot;\n}\n&quot;</span><span class="jsdoc-syntax">,
620                     </span><span class="jsdoc-var">this.splitSelector</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cid</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot; {\n&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">hidden </span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;\n}\n&quot;</span><span class="jsdoc-syntax">);
621         }
622         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Roo.util.CSS.createStyleSheet</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ruleBuf.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">rulesId</span><span class="jsdoc-syntax">);
623     },
624
625     </span><span class="jsdoc-var">updateSplitters </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
626         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.cm</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">s </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getSplitters</span><span class="jsdoc-syntax">();
627         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// splitters not created yet
628             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">pos </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">locked </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
629             </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getColumnCount</span><span class="jsdoc-syntax">(); </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
630                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cm.isHidden</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">)) </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
631                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getColumnWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">);
632                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">cm.isLocked</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) &amp;&amp; </span><span class="jsdoc-var">locked</span><span class="jsdoc-syntax">){
633                     </span><span class="jsdoc-var">pos </span><span class="jsdoc-syntax">= 0;
634                     </span><span class="jsdoc-var">locked </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
635                 }
636                 </span><span class="jsdoc-var">pos </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">;
637                 </span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.style.left </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">pos</span><span class="jsdoc-syntax">-</span><span class="jsdoc-var">this.splitOffset</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">&quot;px&quot;</span><span class="jsdoc-syntax">;
638             }
639         }
640     },
641
642     </span><span class="jsdoc-var">handleHiddenChange </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colModel</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">hidden</span><span class="jsdoc-syntax">){
643         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hidden</span><span class="jsdoc-syntax">){
644             </span><span class="jsdoc-var">this.hideColumn</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">);
645         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
646             </span><span class="jsdoc-var">this.unhideColumn</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">);
647         }
648     },
649
650     </span><span class="jsdoc-var">hideColumn </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">){
651         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getColumnId</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">);
652         </span><span class="jsdoc-var">this.css.updateRule</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.tdSelector</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">this.idToCssName</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cid</span><span class="jsdoc-syntax">), </span><span class="jsdoc-string">&quot;display&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;none&quot;</span><span class="jsdoc-syntax">);
653         </span><span class="jsdoc-var">this.css.updateRule</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.splitSelector</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">this.idToCssName</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cid</span><span class="jsdoc-syntax">), </span><span class="jsdoc-string">&quot;display&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;none&quot;</span><span class="jsdoc-syntax">);
654         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isSafari</span><span class="jsdoc-syntax">){
655             </span><span class="jsdoc-var">this.updateHeaders</span><span class="jsdoc-syntax">();
656         }
657         </span><span class="jsdoc-var">this.updateSplitters</span><span class="jsdoc-syntax">();
658         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
659     },
660
661     </span><span class="jsdoc-var">unhideColumn </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">){
662         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getColumnId</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">);
663         </span><span class="jsdoc-var">this.css.updateRule</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.tdSelector</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">this.idToCssName</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cid</span><span class="jsdoc-syntax">), </span><span class="jsdoc-string">&quot;display&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">);
664         </span><span class="jsdoc-var">this.css.updateRule</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.splitSelector</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">this.idToCssName</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cid</span><span class="jsdoc-syntax">), </span><span class="jsdoc-string">&quot;display&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">);
665
666         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isSafari</span><span class="jsdoc-syntax">){
667             </span><span class="jsdoc-var">this.updateHeaders</span><span class="jsdoc-syntax">();
668         }
669         </span><span class="jsdoc-var">this.updateSplitters</span><span class="jsdoc-syntax">();
670         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
671     },
672
673     </span><span class="jsdoc-var">insertRows </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dm</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">firstRow</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lastRow</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">isUpdate</span><span class="jsdoc-syntax">){
674         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">firstRow </span><span class="jsdoc-syntax">== 0 &amp;&amp; </span><span class="jsdoc-var">lastRow </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">dm.getCount</span><span class="jsdoc-syntax">()-1){
675             </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">();
676         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
677             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">isUpdate</span><span class="jsdoc-syntax">){
678                 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforerowsinserted&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">firstRow</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lastRow</span><span class="jsdoc-syntax">);
679             }
680             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">s </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getScrollState</span><span class="jsdoc-syntax">();
681             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">markup </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.renderRows</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">firstRow</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lastRow</span><span class="jsdoc-syntax">);
682             </span><span class="jsdoc-var">this.bufferRows</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">markup</span><span class="jsdoc-syntax">[0], </span><span class="jsdoc-var">this.getLockedTable</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">firstRow</span><span class="jsdoc-syntax">);
683             </span><span class="jsdoc-var">this.bufferRows</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">markup</span><span class="jsdoc-syntax">[1], </span><span class="jsdoc-var">this.getBodyTable</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">firstRow</span><span class="jsdoc-syntax">);
684             </span><span class="jsdoc-var">this.restoreScroll</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">);
685             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">isUpdate</span><span class="jsdoc-syntax">){
686                 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;rowsinserted&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">firstRow</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lastRow</span><span class="jsdoc-syntax">);
687                 </span><span class="jsdoc-var">this.syncRowHeights</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">firstRow</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lastRow</span><span class="jsdoc-syntax">);
688                 </span><span class="jsdoc-var">this.stripeRows</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">firstRow</span><span class="jsdoc-syntax">);
689                 </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
690             }
691         }
692     },
693
694     </span><span class="jsdoc-var">bufferRows </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">markup</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">target</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">){
695         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">before </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">trows </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">target.rows</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">tbody </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">target.tBodies</span><span class="jsdoc-syntax">[0];
696         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">trows.length</span><span class="jsdoc-syntax">){
697             </span><span class="jsdoc-var">before </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">trows</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">];
698         }
699         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">document.createElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;div&quot;</span><span class="jsdoc-syntax">);
700         </span><span class="jsdoc-var">b.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;&lt;table&gt;&lt;tbody&gt;&quot;</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">markup</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">&quot;&lt;/tbody&gt;&lt;/table&gt;&quot;</span><span class="jsdoc-syntax">;
701         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rows </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b.firstChild.rows</span><span class="jsdoc-syntax">;
702         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">rows.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
703             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">before</span><span class="jsdoc-syntax">){
704                 </span><span class="jsdoc-var">tbody.insertBefore</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rows</span><span class="jsdoc-syntax">[0], </span><span class="jsdoc-var">before</span><span class="jsdoc-syntax">);
705             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
706                 </span><span class="jsdoc-var">tbody.appendChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rows</span><span class="jsdoc-syntax">[0]);
707             }
708         }
709         </span><span class="jsdoc-var">b.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">;
710         </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
711     },
712
713     </span><span class="jsdoc-var">deleteRows </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dm</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">firstRow</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lastRow</span><span class="jsdoc-syntax">){
714         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dm.getRowCount</span><span class="jsdoc-syntax">()&lt;1){
715             </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforerefresh&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
716             </span><span class="jsdoc-var">this.mainBody.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">);
717             </span><span class="jsdoc-var">this.lockedBody.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">);
718             </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;refresh&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
719         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
720             </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforerowsdeleted&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">firstRow</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lastRow</span><span class="jsdoc-syntax">);
721             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">bt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getBodyTable</span><span class="jsdoc-syntax">();
722             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tbody </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">bt.firstChild</span><span class="jsdoc-syntax">;
723             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rows </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">bt.rows</span><span class="jsdoc-syntax">;
724             </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rowIndex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">firstRow</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">rowIndex </span><span class="jsdoc-syntax">&lt;= </span><span class="jsdoc-var">lastRow</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">++){
725                 </span><span class="jsdoc-var">tbody.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rows</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">firstRow</span><span class="jsdoc-syntax">]);
726             }
727             </span><span class="jsdoc-var">this.stripeRows</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">firstRow</span><span class="jsdoc-syntax">);
728             </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;rowsdeleted&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">firstRow</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lastRow</span><span class="jsdoc-syntax">);
729         }
730     },
731
732     </span><span class="jsdoc-var">updateRows </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dataSource</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">firstRow</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lastRow</span><span class="jsdoc-syntax">){
733         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">s </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getScrollState</span><span class="jsdoc-syntax">();
734         </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">();
735         </span><span class="jsdoc-var">this.restoreScroll</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">);
736     },
737
738     </span><span class="jsdoc-var">handleSort </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dataSource</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">sortColumnIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">sortDir</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">noRefresh</span><span class="jsdoc-syntax">){
739         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">noRefresh</span><span class="jsdoc-syntax">){
740            </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">();
741         }
742         </span><span class="jsdoc-var">this.updateHeaderSortState</span><span class="jsdoc-syntax">();
743     },
744
745     </span><span class="jsdoc-var">getScrollState </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
746         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.scroller.dom</span><span class="jsdoc-syntax">;
747         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{</span><span class="jsdoc-var">left</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">sb.scrollLeft</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">top</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">sb.scrollTop</span><span class="jsdoc-syntax">};
748     },
749
750     </span><span class="jsdoc-var">stripeRows </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">startRow</span><span class="jsdoc-syntax">){
751         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.grid.stripeRows </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.ds.getCount</span><span class="jsdoc-syntax">() &lt; 1){
752             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
753         }
754         </span><span class="jsdoc-var">startRow </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">startRow </span><span class="jsdoc-syntax">|| 0;
755         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rows </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getBodyTable</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.rows</span><span class="jsdoc-syntax">;
756         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">lrows </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getLockedTable</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.rows</span><span class="jsdoc-syntax">;
757         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">' x-grid-row-alt '</span><span class="jsdoc-syntax">;
758         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">startRow</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">rows.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
759             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">row </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">rows</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">], </span><span class="jsdoc-var">lrow </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">lrows</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
760             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">isAlt </span><span class="jsdoc-syntax">= ((</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">+1) % 2 == 0);
761             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hasAlt </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-string">' '</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">row.className </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">' '</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">) != -1;
762             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isAlt </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">hasAlt</span><span class="jsdoc-syntax">){
763                 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
764             }
765             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isAlt</span><span class="jsdoc-syntax">){
766                 </span><span class="jsdoc-var">row.className </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">&quot; x-grid-row-alt&quot;</span><span class="jsdoc-syntax">;
767             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
768                 </span><span class="jsdoc-var">row.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">row.className.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-grid-row-alt&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">);
769             }
770             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">lrow</span><span class="jsdoc-syntax">){
771                 </span><span class="jsdoc-var">lrow.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">row.className</span><span class="jsdoc-syntax">;
772             }
773         }
774     },
775
776     </span><span class="jsdoc-var">restoreScroll </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">state</span><span class="jsdoc-syntax">){
777         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.scroller.dom</span><span class="jsdoc-syntax">;
778         </span><span class="jsdoc-var">sb.scrollLeft </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">state.left</span><span class="jsdoc-syntax">;
779         </span><span class="jsdoc-var">sb.scrollTop </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">state.top</span><span class="jsdoc-syntax">;
780         </span><span class="jsdoc-var">this.syncScroll</span><span class="jsdoc-syntax">();
781     },
782
783     </span><span class="jsdoc-var">syncScroll </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
784         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.scroller.dom</span><span class="jsdoc-syntax">;
785         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sh </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.mainHd.dom</span><span class="jsdoc-syntax">;
786         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">bs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.mainBody.dom</span><span class="jsdoc-syntax">;
787         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">lv </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.lockedBody.dom</span><span class="jsdoc-syntax">;
788         </span><span class="jsdoc-var">sh.scrollLeft </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">bs.scrollLeft </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">sb.scrollLeft</span><span class="jsdoc-syntax">;
789         </span><span class="jsdoc-var">lv.scrollTop </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">bs.scrollTop </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">sb.scrollTop</span><span class="jsdoc-syntax">;
790     },
791
792     </span><span class="jsdoc-var">handleScroll </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
793         </span><span class="jsdoc-var">this.syncScroll</span><span class="jsdoc-syntax">();
794         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.scroller.dom</span><span class="jsdoc-syntax">;
795         </span><span class="jsdoc-var">this.grid.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;bodyscroll&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">sb.scrollLeft</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">sb.scrollTop</span><span class="jsdoc-syntax">);
796         </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
797     },
798
799     </span><span class="jsdoc-var">handleWheel </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
800         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">d </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.getWheelDelta</span><span class="jsdoc-syntax">();
801         </span><span class="jsdoc-var">this.scroller.dom.scrollTop </span><span class="jsdoc-syntax">-= </span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">*22;
802         </span><span class="jsdoc-comment">// set this here to prevent jumpy scrolling on large tables
803         </span><span class="jsdoc-var">this.lockedBody.dom.scrollTop </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.mainBody.dom.scrollTop </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.scroller.dom.scrollTop</span><span class="jsdoc-syntax">;
804         </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
805     },
806
807     </span><span class="jsdoc-var">renderRows </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">startRow</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">endRow</span><span class="jsdoc-syntax">){
808         </span><span class="jsdoc-comment">// pull in all the crap needed to render rows
809         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">g </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.grid</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">g.colModel</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ds </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">g.dataSource</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">stripe </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">g.stripeRows</span><span class="jsdoc-syntax">;
810         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">colCount </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getColumnCount</span><span class="jsdoc-syntax">();
811
812         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ds.getCount</span><span class="jsdoc-syntax">() &lt; 1){
813             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">];
814         }
815
816         </span><span class="jsdoc-comment">// build a map for all the columns
817         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cs </span><span class="jsdoc-syntax">= [];
818         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">colCount</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
819             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getDataIndex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">);
820             </span><span class="jsdoc-var">cs</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = {
821                 </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">ds.fields.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.name </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">,
822                 </span><span class="jsdoc-var">renderer </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cm.getRenderer</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">),
823                 </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cm.getColumnId</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">),
824                 </span><span class="jsdoc-var">locked </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cm.isLocked</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">)
825             };
826         }
827
828         </span><span class="jsdoc-var">startRow </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">startRow </span><span class="jsdoc-syntax">|| 0;
829         </span><span class="jsdoc-var">endRow </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">endRow </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;undefined&quot;</span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">ds.getCount</span><span class="jsdoc-syntax">()-1 : </span><span class="jsdoc-var">endRow</span><span class="jsdoc-syntax">;
830
831         </span><span class="jsdoc-comment">// records to render
832         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ds.getRange</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">startRow</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">endRow</span><span class="jsdoc-syntax">);
833
834         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.doRender</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cs</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rs</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ds</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">startRow</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">colCount</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">stripe</span><span class="jsdoc-syntax">);
835     },
836
837     </span><span class="jsdoc-comment">// As much as I hate to duplicate code, this was branched because FireFox really hates
838     // [].join(&quot;&quot;) on strings. The performance difference was substantial enough to
839     // branch this function
840     </span><span class="jsdoc-var">doRender </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.isGecko </span><span class="jsdoc-syntax">?
841             </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cs</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rs</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ds</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">startRow</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">colCount</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">stripe</span><span class="jsdoc-syntax">){
842                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ts </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.templates</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ct </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ts.cell</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ts.row</span><span class="jsdoc-syntax">;
843                 </span><span class="jsdoc-comment">// buffers
844                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">buf </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lbuf </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cb</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lcb</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= {}, </span><span class="jsdoc-var">rp </span><span class="jsdoc-syntax">= {}, </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">;
845                 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">rs.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">++){
846                     </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">rs</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">]; </span><span class="jsdoc-var">cb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">lcb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">rowIndex </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">startRow</span><span class="jsdoc-syntax">);
847                     </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">colCount</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
848                         </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cs</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
849                         </span><span class="jsdoc-var">p.cellId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;x-grid-cell-&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">rowIndex </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot;-&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;
850                         </span><span class="jsdoc-var">p.id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">c.id</span><span class="jsdoc-syntax">;
851                         </span><span class="jsdoc-var">p.css </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">p.attr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">;
852                         </span><span class="jsdoc-var">p.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">c.renderer</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r.data</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">c.name</span><span class="jsdoc-syntax">], </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ds</span><span class="jsdoc-syntax">);
853                         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p.value </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">p.value </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">) </span><span class="jsdoc-var">p.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;&amp;#160;&quot;</span><span class="jsdoc-syntax">;
854                         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r.dirty </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">r.modified</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">c.name</span><span class="jsdoc-syntax">] !== </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">){
855                             </span><span class="jsdoc-var">p.css </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">p.css </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">' x-grid-dirty-cell' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'x-grid-dirty-cell'</span><span class="jsdoc-syntax">;
856                         }
857                         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">markup </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ct.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">);
858                         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">c.locked</span><span class="jsdoc-syntax">){
859                             </span><span class="jsdoc-var">cb</span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">markup</span><span class="jsdoc-syntax">;
860                         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
861                             </span><span class="jsdoc-var">lcb</span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">markup</span><span class="jsdoc-syntax">;
862                         }
863                     }
864                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">alt </span><span class="jsdoc-syntax">= [];
865                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">stripe </span><span class="jsdoc-syntax">&amp;&amp; ((</span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">+1) % 2 == 0)){
866                         </span><span class="jsdoc-var">alt</span><span class="jsdoc-syntax">[0] = </span><span class="jsdoc-string">&quot;x-grid-row-alt&quot;</span><span class="jsdoc-syntax">;
867                     }
868                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r.dirty</span><span class="jsdoc-syntax">){
869                         </span><span class="jsdoc-var">alt</span><span class="jsdoc-syntax">[1] = </span><span class="jsdoc-string">&quot; x-grid-dirty-row&quot;</span><span class="jsdoc-syntax">;
870                     }
871                     </span><span class="jsdoc-var">rp.cells </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">lcb</span><span class="jsdoc-syntax">;
872                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.getRowClass</span><span class="jsdoc-syntax">){
873                         </span><span class="jsdoc-var">alt</span><span class="jsdoc-syntax">[2] = </span><span class="jsdoc-var">this.getRowClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">);
874                     }
875                     </span><span class="jsdoc-var">rp.alt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">alt.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot; &quot;</span><span class="jsdoc-syntax">);
876                     </span><span class="jsdoc-var">lbuf</span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">rt.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rp</span><span class="jsdoc-syntax">);
877                     </span><span class="jsdoc-var">rp.cells </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cb</span><span class="jsdoc-syntax">;
878                     </span><span class="jsdoc-var">buf</span><span class="jsdoc-syntax">+=  </span><span class="jsdoc-var">rt.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rp</span><span class="jsdoc-syntax">);
879                 }
880                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">lbuf</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">buf</span><span class="jsdoc-syntax">];
881             } :
882             </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cs</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rs</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ds</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">startRow</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">colCount</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">stripe</span><span class="jsdoc-syntax">){
883                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ts </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.templates</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ct </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ts.cell</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ts.row</span><span class="jsdoc-syntax">;
884                 </span><span class="jsdoc-comment">// buffers
885                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">buf </span><span class="jsdoc-syntax">= [], </span><span class="jsdoc-var">lbuf </span><span class="jsdoc-syntax">= [], </span><span class="jsdoc-var">cb</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lcb</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= {}, </span><span class="jsdoc-var">rp </span><span class="jsdoc-syntax">= {}, </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">;
886                 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">rs.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">++){
887                     </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">rs</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">]; </span><span class="jsdoc-var">cb </span><span class="jsdoc-syntax">= []; </span><span class="jsdoc-var">lcb </span><span class="jsdoc-syntax">= []; </span><span class="jsdoc-var">rowIndex </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">startRow</span><span class="jsdoc-syntax">);
888                     </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">colCount</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
889                         </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cs</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
890                         </span><span class="jsdoc-var">p.cellId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;x-grid-cell-&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">rowIndex </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot;-&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;
891                         </span><span class="jsdoc-var">p.id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">c.id</span><span class="jsdoc-syntax">;
892                         </span><span class="jsdoc-var">p.css </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">p.attr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">;
893                         </span><span class="jsdoc-var">p.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">c.renderer</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r.data</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">c.name</span><span class="jsdoc-syntax">], </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ds</span><span class="jsdoc-syntax">);
894                         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p.value </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">p.value </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">) </span><span class="jsdoc-var">p.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;&amp;#160;&quot;</span><span class="jsdoc-syntax">;
895                         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r.dirty </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">r.modified</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">c.name</span><span class="jsdoc-syntax">] !== </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">){
896                             </span><span class="jsdoc-var">p.css </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">p.css </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">' x-grid-dirty-cell' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'x-grid-dirty-cell'</span><span class="jsdoc-syntax">;
897                         }
898                         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">markup </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ct.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">);
899                         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">c.locked</span><span class="jsdoc-syntax">){
900                             </span><span class="jsdoc-var">cb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">cb.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">markup</span><span class="jsdoc-syntax">;
901                         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
902                             </span><span class="jsdoc-var">lcb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">lcb.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">markup</span><span class="jsdoc-syntax">;
903                         }
904                     }
905                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">alt </span><span class="jsdoc-syntax">= [];
906                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">stripe </span><span class="jsdoc-syntax">&amp;&amp; ((</span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">+1) % 2 == 0)){
907                         </span><span class="jsdoc-var">alt</span><span class="jsdoc-syntax">[0] = </span><span class="jsdoc-string">&quot;x-grid-row-alt&quot;</span><span class="jsdoc-syntax">;
908                     }
909                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r.dirty</span><span class="jsdoc-syntax">){
910                         </span><span class="jsdoc-var">alt</span><span class="jsdoc-syntax">[1] = </span><span class="jsdoc-string">&quot; x-grid-dirty-row&quot;</span><span class="jsdoc-syntax">;
911                     }
912                     </span><span class="jsdoc-var">rp.cells </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">lcb</span><span class="jsdoc-syntax">;
913                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.getRowClass</span><span class="jsdoc-syntax">){
914                         </span><span class="jsdoc-var">alt</span><span class="jsdoc-syntax">[2] = </span><span class="jsdoc-var">this.getRowClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">);
915                     }
916                     </span><span class="jsdoc-var">rp.alt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">alt.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot; &quot;</span><span class="jsdoc-syntax">);
917                     </span><span class="jsdoc-var">rp.cells </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">lcb.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">);
918                     </span><span class="jsdoc-var">lbuf</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">lbuf.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">rt.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rp</span><span class="jsdoc-syntax">);
919                     </span><span class="jsdoc-var">rp.cells </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cb.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">);
920                     </span><span class="jsdoc-var">buf</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">buf.length</span><span class="jsdoc-syntax">] =  </span><span class="jsdoc-var">rt.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rp</span><span class="jsdoc-syntax">);
921                 }
922                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">lbuf.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">buf.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">)];
923             },
924
925     </span><span class="jsdoc-var">renderBody </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
926         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">markup </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.renderRows</span><span class="jsdoc-syntax">();
927         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">bt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.templates.body</span><span class="jsdoc-syntax">;
928         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">bt.apply</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">rows</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">markup</span><span class="jsdoc-syntax">[0]}), </span><span class="jsdoc-var">bt.apply</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">rows</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">markup</span><span class="jsdoc-syntax">[1]})];
929     },
930
931     </span><span class="jsdoc-comment">/**
932      * Refreshes the grid
933      * @param {Boolean} headersToo
934      */
935     </span><span class="jsdoc-var">refresh </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">headersToo</span><span class="jsdoc-syntax">){
936         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforerefresh&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
937         </span><span class="jsdoc-var">this.grid.stopEditing</span><span class="jsdoc-syntax">();
938         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">result </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.renderBody</span><span class="jsdoc-syntax">();
939         </span><span class="jsdoc-var">this.lockedBody.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">result</span><span class="jsdoc-syntax">[0]);
940         </span><span class="jsdoc-var">this.mainBody.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">result</span><span class="jsdoc-syntax">[1]);
941         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">headersToo </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
942             </span><span class="jsdoc-var">this.updateHeaders</span><span class="jsdoc-syntax">();
943             </span><span class="jsdoc-var">this.updateColumns</span><span class="jsdoc-syntax">();
944             </span><span class="jsdoc-var">this.updateSplitters</span><span class="jsdoc-syntax">();
945             </span><span class="jsdoc-var">this.updateHeaderSortState</span><span class="jsdoc-syntax">();
946         }
947         </span><span class="jsdoc-var">this.syncRowHeights</span><span class="jsdoc-syntax">();
948         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
949         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;refresh&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
950     },
951
952     </span><span class="jsdoc-var">handleColumnMove </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cm</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">oldIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">newIndex</span><span class="jsdoc-syntax">){
953         </span><span class="jsdoc-var">this.indexMap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
954         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">s </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getScrollState</span><span class="jsdoc-syntax">();
955         </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
956         </span><span class="jsdoc-var">this.restoreScroll</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">);
957         </span><span class="jsdoc-var">this.afterMove</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">newIndex</span><span class="jsdoc-syntax">);
958     },
959
960     </span><span class="jsdoc-var">afterMove </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">){
961         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.enableMoveAnim </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">Roo.enableFx</span><span class="jsdoc-syntax">){
962             </span><span class="jsdoc-var">this.fly</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.getHeaderCell</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.firstChild</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.highlight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hlColor</span><span class="jsdoc-syntax">);
963         }
964     },
965
966     </span><span class="jsdoc-var">updateCell </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dm</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dataIndex</span><span class="jsdoc-syntax">){
967         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">colIndex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getColumnIndexByDataIndex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dataIndex</span><span class="jsdoc-syntax">);
968         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">colIndex </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;undefined&quot;</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// not present in grid
969             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
970         }
971         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.grid.colModel</span><span class="jsdoc-syntax">;
972         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getCell</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">);
973         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cellText </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getCellText</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">);
974
975         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= {
976             </span><span class="jsdoc-var">cellId </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;x-grid-cell-&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">rowIndex </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot;-&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">,
977             </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cm.getColumnId</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">),
978             </span><span class="jsdoc-var">css</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">colIndex </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">cm.getColumnCount</span><span class="jsdoc-syntax">()-1 ? </span><span class="jsdoc-string">&quot;x-grid-col-last&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;&quot;
979         </span><span class="jsdoc-syntax">};
980         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">renderer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getRenderer</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">);
981         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">val </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">renderer</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dm.getValueAt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dataIndex</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dm</span><span class="jsdoc-syntax">);
982         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">val </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;undefined&quot; </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">val </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">) </span><span class="jsdoc-var">val </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;&amp;#160;&quot;</span><span class="jsdoc-syntax">;
983         </span><span class="jsdoc-var">cellText.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">;
984         </span><span class="jsdoc-var">cell.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.cellClass </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot; &quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.idToCssName</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p.cellId</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">&quot; &quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">p.css</span><span class="jsdoc-syntax">;
985         </span><span class="jsdoc-var">this.syncRowHeights</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">);
986     },
987
988     </span><span class="jsdoc-var">calcColumnWidth </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">maxRowsToMeasure</span><span class="jsdoc-syntax">){
989         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">maxWidth </span><span class="jsdoc-syntax">= 0;
990         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.autoSizeHeaders</span><span class="jsdoc-syntax">){
991             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getHeaderCellMeasure</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">);
992             </span><span class="jsdoc-var">maxWidth </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">maxWidth</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">h.scrollWidth</span><span class="jsdoc-syntax">);
993         }
994         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tb</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">;
995         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.cm.isLocked</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">)){
996             </span><span class="jsdoc-var">tb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getLockedTable</span><span class="jsdoc-syntax">();
997             </span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">;
998         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
999             </span><span class="jsdoc-var">tb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getBodyTable</span><span class="jsdoc-syntax">();
1000             </span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">colIndex </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">this.cm.getLockedCount</span><span class="jsdoc-syntax">();
1001         }
1002         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tb </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">tb.rows</span><span class="jsdoc-syntax">){
1003             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rows </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">tb.rows</span><span class="jsdoc-syntax">;
1004             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">stopIndex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.min</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">maxRowsToMeasure </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">rows.length</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rows.length</span><span class="jsdoc-syntax">);
1005             </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">stopIndex</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
1006                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">rows</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.childNodes</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.firstChild</span><span class="jsdoc-syntax">;
1007                 </span><span class="jsdoc-var">maxWidth </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">maxWidth</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cell.scrollWidth</span><span class="jsdoc-syntax">);
1008             }
1009         }
1010         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">maxWidth </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-comment">/*margin for error in IE*/ </span><span class="jsdoc-syntax">5;
1011     },
1012     </span><span class="jsdoc-comment">/**
1013      * Autofit a column to its content.
1014      * @param {Number} colIndex
1015      * @param {Boolean} forceMinSize true to force the column to go smaller if possible
1016      */
1017      </span><span class="jsdoc-var">autoSizeColumn </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">forceMinSize</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">suppressEvent</span><span class="jsdoc-syntax">){
1018          </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.cm.isHidden</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">)){
1019              </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// can't calc a hidden column
1020          </span><span class="jsdoc-syntax">}
1021         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">forceMinSize</span><span class="jsdoc-syntax">){
1022             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.cm.getColumnId</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">);
1023             </span><span class="jsdoc-var">this.css.updateRule</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.colSelector </span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">this.idToCssName</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">cid</span><span class="jsdoc-syntax">), </span><span class="jsdoc-string">&quot;width&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.grid.minColumnWidth </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot;px&quot;</span><span class="jsdoc-syntax">);
1024            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.autoSizeHeaders</span><span class="jsdoc-syntax">){
1025                </span><span class="jsdoc-var">this.css.updateRule</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hdSelector </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.idToCssName</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cid</span><span class="jsdoc-syntax">), </span><span class="jsdoc-string">&quot;width&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.grid.minColumnWidth </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot;px&quot;</span><span class="jsdoc-syntax">);
1026            }
1027         }
1028         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">newWidth </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.calcColumnWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">);
1029         </span><span class="jsdoc-var">this.cm.setColumnWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">,
1030             </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.minColumnWidth</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">newWidth</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">suppressEvent</span><span class="jsdoc-syntax">);
1031         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">suppressEvent</span><span class="jsdoc-syntax">){
1032             </span><span class="jsdoc-var">this.grid.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;columnresize&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">newWidth</span><span class="jsdoc-syntax">);
1033         }
1034     },
1035
1036     </span><span class="jsdoc-comment">/**
1037      * Autofits all columns to their content and then expands to fit any extra space in the grid
1038      */
1039      </span><span class="jsdoc-var">autoSizeColumns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1040         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.grid.colModel</span><span class="jsdoc-syntax">;
1041         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">colCount </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getColumnCount</span><span class="jsdoc-syntax">();
1042         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">colCount</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
1043             </span><span class="jsdoc-var">this.autoSizeColumn</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
1044         }
1045         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cm.getTotalWidth</span><span class="jsdoc-syntax">() &lt; </span><span class="jsdoc-var">this.scroller.dom.clientWidth</span><span class="jsdoc-syntax">){
1046             </span><span class="jsdoc-var">this.fitColumns</span><span class="jsdoc-syntax">();
1047         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
1048             </span><span class="jsdoc-var">this.updateColumns</span><span class="jsdoc-syntax">();
1049             </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
1050         }
1051     },
1052
1053     </span><span class="jsdoc-comment">/**
1054      * Autofits all columns to the grid's width proportionate with their current size
1055      * @param {Boolean} reserveScrollSpace Reserve space for a scrollbar
1056      */
1057     </span><span class="jsdoc-var">fitColumns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">reserveScrollSpace</span><span class="jsdoc-syntax">){
1058         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.grid.colModel</span><span class="jsdoc-syntax">;
1059         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">colCount </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getColumnCount</span><span class="jsdoc-syntax">();
1060         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cols </span><span class="jsdoc-syntax">= [];
1061         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">width </span><span class="jsdoc-syntax">= 0;
1062         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">;
1063         </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">colCount</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
1064             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">cm.isHidden</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) &amp;&amp; !</span><span class="jsdoc-var">cm.isFixed</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">)){
1065                 </span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getColumnWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">);
1066                 </span><span class="jsdoc-var">cols.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">);
1067                 </span><span class="jsdoc-var">cols.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">);
1068                 </span><span class="jsdoc-var">width </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">;
1069             }
1070         }
1071         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">avail </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.min</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.scroller.dom.clientWidth</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.el.getWidth</span><span class="jsdoc-syntax">());
1072         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">reserveScrollSpace</span><span class="jsdoc-syntax">){
1073             </span><span class="jsdoc-var">avail </span><span class="jsdoc-syntax">-= 17;
1074         }
1075         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">frac </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">avail </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">cm.getTotalWidth</span><span class="jsdoc-syntax">())/</span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">;
1076         </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cols.length</span><span class="jsdoc-syntax">){
1077             </span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cols.pop</span><span class="jsdoc-syntax">();
1078             </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cols.pop</span><span class="jsdoc-syntax">();
1079             </span><span class="jsdoc-var">cm.setColumnWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Math.floor</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">*</span><span class="jsdoc-var">frac</span><span class="jsdoc-syntax">), </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
1080         }
1081         </span><span class="jsdoc-var">this.updateColumns</span><span class="jsdoc-syntax">();
1082         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
1083     },
1084
1085     </span><span class="jsdoc-var">onRowSelect </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">){
1086         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">row </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getRowComposite</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">);
1087         </span><span class="jsdoc-var">row.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-grid-row-selected&quot;</span><span class="jsdoc-syntax">);
1088     },
1089
1090     </span><span class="jsdoc-var">onRowDeselect </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">){
1091         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">row </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getRowComposite</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">);
1092         </span><span class="jsdoc-var">row.removeClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-grid-row-selected&quot;</span><span class="jsdoc-syntax">);
1093     },
1094
1095     </span><span class="jsdoc-var">onCellSelect </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">){
1096         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getCell</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">);
1097         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">){
1098             </span><span class="jsdoc-var">Roo.fly</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-grid-cell-selected&quot;</span><span class="jsdoc-syntax">);
1099         }
1100     },
1101
1102     </span><span class="jsdoc-var">onCellDeselect </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">){
1103         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getCell</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">);
1104         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">){
1105             </span><span class="jsdoc-var">Roo.fly</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.removeClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-grid-cell-selected&quot;</span><span class="jsdoc-syntax">);
1106         }
1107     },
1108
1109     </span><span class="jsdoc-var">updateHeaderSortState </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1110         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">state </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.ds.getSortState</span><span class="jsdoc-syntax">();
1111         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">state</span><span class="jsdoc-syntax">){
1112             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1113         }
1114         </span><span class="jsdoc-var">this.sortState </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">state</span><span class="jsdoc-syntax">;
1115         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sortColumn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.cm.findColumnIndex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">state.field</span><span class="jsdoc-syntax">);
1116         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sortColumn </span><span class="jsdoc-syntax">!= -1){
1117             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sortDir </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">state.direction</span><span class="jsdoc-syntax">;
1118             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sc </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.sortClasses</span><span class="jsdoc-syntax">;
1119             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hds </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.headerSelector</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.removeClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sc</span><span class="jsdoc-syntax">);
1120             </span><span class="jsdoc-var">hds.item</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sortColumn</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sc</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sortDir </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;DESC&quot; </span><span class="jsdoc-syntax">? 1 : 0]);
1121         }
1122     },
1123
1124     </span><span class="jsdoc-var">handleHeaderClick </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">g</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">){
1125         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.headersDisabled</span><span class="jsdoc-syntax">){
1126             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1127         }
1128         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">g.dataSource</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">g.colModel</span><span class="jsdoc-syntax">;
1129             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">cm.isSortable</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">)){
1130             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1131         }
1132             </span><span class="jsdoc-var">g.stopEditing</span><span class="jsdoc-syntax">();
1133         </span><span class="jsdoc-var">dm.sort</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cm.getDataIndex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">));
1134     },
1135
1136
1137     </span><span class="jsdoc-var">destroy </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1138         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.colMenu</span><span class="jsdoc-syntax">){
1139             </span><span class="jsdoc-var">this.colMenu.removeAll</span><span class="jsdoc-syntax">();
1140             </span><span class="jsdoc-var">Roo.menu.MenuMgr.unregister</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.colMenu</span><span class="jsdoc-syntax">);
1141             </span><span class="jsdoc-var">this.colMenu.getEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.remove</span><span class="jsdoc-syntax">();
1142             </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.colMenu</span><span class="jsdoc-syntax">;
1143         }
1144         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hmenu</span><span class="jsdoc-syntax">){
1145             </span><span class="jsdoc-var">this.hmenu.removeAll</span><span class="jsdoc-syntax">();
1146             </span><span class="jsdoc-var">Roo.menu.MenuMgr.unregister</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hmenu</span><span class="jsdoc-syntax">);
1147             </span><span class="jsdoc-var">this.hmenu.getEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.remove</span><span class="jsdoc-syntax">();
1148             </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.hmenu</span><span class="jsdoc-syntax">;
1149         }
1150         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.enableColumnMove</span><span class="jsdoc-syntax">){
1151             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dds </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.dd.DDM.ids</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">'gridHeader' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.grid.getGridEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.id</span><span class="jsdoc-syntax">];
1152             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dds</span><span class="jsdoc-syntax">){
1153                 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dd </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">dds</span><span class="jsdoc-syntax">){
1154                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">dds</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.config.isTarget </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">dds</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.dragElId</span><span class="jsdoc-syntax">){
1155                         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">elid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dds</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.dragElId</span><span class="jsdoc-syntax">;
1156                         </span><span class="jsdoc-var">dds</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.unreg</span><span class="jsdoc-syntax">();
1157                         </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">elid</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.remove</span><span class="jsdoc-syntax">();
1158                     } </span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dds</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.config.isTarget</span><span class="jsdoc-syntax">){
1159                         </span><span class="jsdoc-var">dds</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.proxyTop.remove</span><span class="jsdoc-syntax">();
1160                         </span><span class="jsdoc-var">dds</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.proxyBottom.remove</span><span class="jsdoc-syntax">();
1161                         </span><span class="jsdoc-var">dds</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.unreg</span><span class="jsdoc-syntax">();
1162                     }
1163                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.dd.DDM.locationCache</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">]){
1164                         </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">Roo.dd.DDM.locationCache</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">];
1165                     }
1166                 }
1167                 </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">Roo.dd.DDM.ids</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">'gridHeader' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.grid.getGridEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.id</span><span class="jsdoc-syntax">];
1168             }
1169         }
1170         </span><span class="jsdoc-var">Roo.util.CSS.removeStyleSheet</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.idToCssName</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.id</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'-cssrules'</span><span class="jsdoc-syntax">);
1171         </span><span class="jsdoc-var">this.bind</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">);
1172         </span><span class="jsdoc-var">Roo.EventManager.removeResizeListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.onWindowResize</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
1173     },
1174
1175     </span><span class="jsdoc-var">handleLockChange </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1176         </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
1177     },
1178
1179     </span><span class="jsdoc-var">onDenyColumnLock </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1180
1181     },
1182
1183     </span><span class="jsdoc-var">onDenyColumnHide </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1184
1185     },
1186
1187     </span><span class="jsdoc-var">handleHdMenuClick </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item</span><span class="jsdoc-syntax">){
1188         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.hdCtxIndex</span><span class="jsdoc-syntax">;
1189         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.cm</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ds </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.ds</span><span class="jsdoc-syntax">;
1190         </span><span class="jsdoc-keyword">switch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item.id</span><span class="jsdoc-syntax">){
1191             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">&quot;asc&quot;</span><span class="jsdoc-syntax">:
1192                 </span><span class="jsdoc-var">ds.sort</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cm.getDataIndex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">), </span><span class="jsdoc-string">&quot;ASC&quot;</span><span class="jsdoc-syntax">);
1193                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
1194             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">&quot;desc&quot;</span><span class="jsdoc-syntax">:
1195                 </span><span class="jsdoc-var">ds.sort</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cm.getDataIndex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">), </span><span class="jsdoc-string">&quot;DESC&quot;</span><span class="jsdoc-syntax">);
1196                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
1197             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">&quot;lock&quot;</span><span class="jsdoc-syntax">:
1198                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">lc </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getLockedCount</span><span class="jsdoc-syntax">();
1199                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cm.getColumnCount</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">) &lt;= </span><span class="jsdoc-var">lc</span><span class="jsdoc-syntax">+1){
1200                     </span><span class="jsdoc-var">this.onDenyColumnLock</span><span class="jsdoc-syntax">();
1201                     </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1202                 }
1203                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">lc </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">){
1204                     </span><span class="jsdoc-var">cm.setLocked</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
1205                     </span><span class="jsdoc-var">cm.moveColumn</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lc</span><span class="jsdoc-syntax">);
1206                     </span><span class="jsdoc-var">this.grid.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;columnmove&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lc</span><span class="jsdoc-syntax">);
1207                 }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
1208                     </span><span class="jsdoc-var">cm.setLocked</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
1209                 }
1210             </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
1211             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">&quot;unlock&quot;</span><span class="jsdoc-syntax">:
1212                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">lc </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getLockedCount</span><span class="jsdoc-syntax">();
1213                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">lc</span><span class="jsdoc-syntax">-1) != </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">){
1214                     </span><span class="jsdoc-var">cm.setLocked</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
1215                     </span><span class="jsdoc-var">cm.moveColumn</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lc</span><span class="jsdoc-syntax">-1);
1216                     </span><span class="jsdoc-var">this.grid.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;columnmove&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lc</span><span class="jsdoc-syntax">-1);
1217                 }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
1218                     </span><span class="jsdoc-var">cm.setLocked</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
1219                 }
1220             </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
1221             </span><span class="jsdoc-keyword">default</span><span class="jsdoc-syntax">:
1222                 </span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getIndexById</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item.id.substr</span><span class="jsdoc-syntax">(4));
1223                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">!= -1){
1224                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item.checked </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">cm.getColumnCount</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">) &lt;= 1){
1225                         </span><span class="jsdoc-var">this.onDenyColumnHide</span><span class="jsdoc-syntax">();
1226                         </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
1227                     }
1228                     </span><span class="jsdoc-var">cm.setHidden</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">item.checked</span><span class="jsdoc-syntax">);
1229                 }
1230         }
1231         </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
1232     },
1233
1234     </span><span class="jsdoc-var">beforeColMenuShow </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1235         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.cm</span><span class="jsdoc-syntax">,  </span><span class="jsdoc-var">colCount </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getColumnCount</span><span class="jsdoc-syntax">();
1236         </span><span class="jsdoc-var">this.colMenu.removeAll</span><span class="jsdoc-syntax">();
1237         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">colCount</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
1238             </span><span class="jsdoc-var">this.colMenu.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.menu.CheckItem</span><span class="jsdoc-syntax">({
1239                 </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;col-&quot;</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">cm.getColumnId</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">),
1240                 </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cm.getColumnHeader</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">),
1241                 </span><span class="jsdoc-var">checked</span><span class="jsdoc-syntax">: !</span><span class="jsdoc-var">cm.isHidden</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">),
1242                 </span><span class="jsdoc-var">hideOnClick</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">false
1243             </span><span class="jsdoc-syntax">}));
1244         }
1245     },
1246
1247     </span><span class="jsdoc-var">handleHdCtx </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">g</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
1248         </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
1249         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getHeaderCell</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
1250         </span><span class="jsdoc-var">this.hdCtxIndex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">;
1251         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ms </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.hmenu.items</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.cm</span><span class="jsdoc-syntax">;
1252         </span><span class="jsdoc-var">ms.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;asc&quot;</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.setDisabled</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">cm.isSortable</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">));
1253         </span><span class="jsdoc-var">ms.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;desc&quot;</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.setDisabled</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">cm.isSortable</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">));
1254         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.enableColLock </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
1255             </span><span class="jsdoc-var">ms.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;lock&quot;</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.setDisabled</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cm.isLocked</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">));
1256             </span><span class="jsdoc-var">ms.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;unlock&quot;</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.setDisabled</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">cm.isLocked</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">));
1257         }
1258         </span><span class="jsdoc-var">this.hmenu.show</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hd</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;tl-bl&quot;</span><span class="jsdoc-syntax">);
1259     },
1260
1261     </span><span class="jsdoc-var">handleHdOver </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
1262         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.findHeaderCell</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.getTarget</span><span class="jsdoc-syntax">());
1263         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hd </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">this.headersDisabled</span><span class="jsdoc-syntax">){
1264             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.colModel.isSortable</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.getCellIndex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hd</span><span class="jsdoc-syntax">))){
1265                </span><span class="jsdoc-var">this.fly</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hd</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-grid-hd-over&quot;</span><span class="jsdoc-syntax">);
1266             }
1267         }
1268     },
1269
1270     </span><span class="jsdoc-var">handleHdOut </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
1271         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.findHeaderCell</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.getTarget</span><span class="jsdoc-syntax">());
1272         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hd</span><span class="jsdoc-syntax">){
1273             </span><span class="jsdoc-var">this.fly</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hd</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.removeClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-grid-hd-over&quot;</span><span class="jsdoc-syntax">);
1274         }
1275     },
1276
1277     </span><span class="jsdoc-var">handleSplitDblClick </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">){
1278         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getCellIndex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">);
1279         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.enableColumnResize </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.cm.isResizable</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) &amp;&amp; !</span><span class="jsdoc-var">this.cm.isFixed</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">)){
1280             </span><span class="jsdoc-var">this.autoSizeColumn</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
1281             </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
1282         }
1283     },
1284
1285     </span><span class="jsdoc-var">render </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1286
1287         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.cm</span><span class="jsdoc-syntax">;
1288         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">colCount </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getColumnCount</span><span class="jsdoc-syntax">();
1289
1290         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.monitorWindowResize </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
1291             </span><span class="jsdoc-var">Roo.EventManager.onWindowResize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.onWindowResize</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
1292         }
1293         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">header </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.renderHeaders</span><span class="jsdoc-syntax">();
1294         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">body </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.templates.body.apply</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">rows</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">});
1295         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.templates.master.apply</span><span class="jsdoc-syntax">({
1296             </span><span class="jsdoc-var">lockedBody</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">body</span><span class="jsdoc-syntax">,
1297             </span><span class="jsdoc-var">body</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">body</span><span class="jsdoc-syntax">,
1298             </span><span class="jsdoc-var">lockedHeader</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">[0],
1299             </span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">[1]
1300         });
1301
1302         </span><span class="jsdoc-comment">//this.updateColumns();
1303
1304         </span><span class="jsdoc-var">this.grid.getGridEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.dom.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">;
1305
1306         </span><span class="jsdoc-var">this.initElements</span><span class="jsdoc-syntax">();
1307         
1308         </span><span class="jsdoc-comment">// a kludge to fix the random scolling effect in webkit
1309         </span><span class="jsdoc-var">this.el.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;scroll&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
1310             </span><span class="jsdoc-var">this.el.dom.scrollTop</span><span class="jsdoc-syntax">=0; </span><span class="jsdoc-comment">// hopefully not recursive..
1311         </span><span class="jsdoc-syntax">},</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
1312
1313         </span><span class="jsdoc-var">this.scroller.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;scroll&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.handleScroll</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
1314         </span><span class="jsdoc-var">this.lockedBody.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;mousewheel&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.handleWheel</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
1315         </span><span class="jsdoc-var">this.mainBody.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;mousewheel&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.handleWheel</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
1316
1317         </span><span class="jsdoc-var">this.mainHd.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;mouseover&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.handleHdOver</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
1318         </span><span class="jsdoc-var">this.mainHd.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;mouseout&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.handleHdOut</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
1319         </span><span class="jsdoc-var">this.mainHd.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;dblclick&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.handleSplitDblClick</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">,
1320                 {</span><span class="jsdoc-var">delegate</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;.&quot;</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">this.splitClass</span><span class="jsdoc-syntax">});
1321
1322         </span><span class="jsdoc-var">this.lockedHd.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;mouseover&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.handleHdOver</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
1323         </span><span class="jsdoc-var">this.lockedHd.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;mouseout&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.handleHdOut</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
1324         </span><span class="jsdoc-var">this.lockedHd.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;dblclick&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.handleSplitDblClick</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">,
1325                 {</span><span class="jsdoc-var">delegate</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;.&quot;</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">this.splitClass</span><span class="jsdoc-syntax">});
1326
1327         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.enableColumnResize </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">Roo.grid.SplitDragZone</span><span class="jsdoc-syntax">){
1328             </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.grid.SplitDragZone</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.lockedHd.dom</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.mainHd.dom</span><span class="jsdoc-syntax">);
1329         }
1330
1331         </span><span class="jsdoc-var">this.updateSplitters</span><span class="jsdoc-syntax">();
1332
1333         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.enableColumnMove </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">Roo.grid.HeaderDragZone</span><span class="jsdoc-syntax">){
1334             </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.grid.HeaderDragZone</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.lockedHd.dom</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.mainHd.dom</span><span class="jsdoc-syntax">);
1335             </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.grid.HeaderDropZone</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.lockedHd.dom</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.mainHd.dom</span><span class="jsdoc-syntax">);
1336         }
1337
1338         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.enableCtxMenu </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">Roo.menu.Menu</span><span class="jsdoc-syntax">){
1339             </span><span class="jsdoc-var">this.hmenu </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.menu.Menu</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.grid.id </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot;-hctx&quot;</span><span class="jsdoc-syntax">});
1340             </span><span class="jsdoc-var">this.hmenu.add</span><span class="jsdoc-syntax">(
1341                 {</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;asc&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.sortAscText</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;xg-hmenu-sort-asc&quot;</span><span class="jsdoc-syntax">},
1342                 {</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;desc&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.sortDescText</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;xg-hmenu-sort-desc&quot;</span><span class="jsdoc-syntax">}
1343             );
1344             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.enableColLock </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
1345                 </span><span class="jsdoc-var">this.hmenu.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'-'</span><span class="jsdoc-syntax">,
1346                     {</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;lock&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.lockText</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;xg-hmenu-lock&quot;</span><span class="jsdoc-syntax">},
1347                     {</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;unlock&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.unlockText</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;xg-hmenu-unlock&quot;</span><span class="jsdoc-syntax">}
1348                 );
1349             }
1350             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.enableColumnHide </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
1351
1352                 </span><span class="jsdoc-var">this.colMenu </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.menu.Menu</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">this.grid.id </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot;-hcols-menu&quot;</span><span class="jsdoc-syntax">});
1353                 </span><span class="jsdoc-var">this.colMenu.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforeshow&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.beforeColMenuShow</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
1354                 </span><span class="jsdoc-var">this.colMenu.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;itemclick&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.handleHdMenuClick</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
1355
1356                 </span><span class="jsdoc-var">this.hmenu.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'-'</span><span class="jsdoc-syntax">,
1357                     {</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;columns&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.columnsText</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">menu</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.colMenu</span><span class="jsdoc-syntax">}
1358                 );
1359             }
1360             </span><span class="jsdoc-var">this.hmenu.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;itemclick&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.handleHdMenuClick</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
1361
1362             </span><span class="jsdoc-var">this.grid.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;headercontextmenu&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.handleHdCtx</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
1363         }
1364
1365         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">this.grid.enableDragDrop </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.grid.enableDrag</span><span class="jsdoc-syntax">) &amp;&amp; </span><span class="jsdoc-var">Roo.grid.GridDragZone</span><span class="jsdoc-syntax">){
1366             </span><span class="jsdoc-var">this.dd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.grid.GridDragZone</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid</span><span class="jsdoc-syntax">, {
1367                 </span><span class="jsdoc-var">ddGroup </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.grid.ddGroup </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-string">'GridDD'
1368             </span><span class="jsdoc-syntax">});
1369         }
1370
1371         </span><span class="jsdoc-comment">/*
1372         for(var i = 0; i &lt; colCount; i++){
1373             if(cm.isHidden(i)){
1374                 this.hideColumn(i);
1375             }
1376             if(cm.config[i].align){
1377                 this.css.updateRule(this.colSelector + i, &quot;textAlign&quot;, cm.config[i].align);
1378                 this.css.updateRule(this.hdSelector + i, &quot;textAlign&quot;, cm.config[i].align);
1379             }
1380         }*/
1381         
1382         </span><span class="jsdoc-var">this.updateHeaderSortState</span><span class="jsdoc-syntax">();
1383
1384         </span><span class="jsdoc-var">this.beforeInitialResize</span><span class="jsdoc-syntax">();
1385         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
1386
1387         </span><span class="jsdoc-comment">// two part rendering gives faster view to the user
1388         </span><span class="jsdoc-var">this.renderPhase2.defer</span><span class="jsdoc-syntax">(1, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
1389     },
1390
1391     </span><span class="jsdoc-var">renderPhase2 </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1392         </span><span class="jsdoc-comment">// render the rows now
1393         </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">();
1394         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.autoSizeColumns</span><span class="jsdoc-syntax">){
1395             </span><span class="jsdoc-var">this.autoSizeColumns</span><span class="jsdoc-syntax">();
1396         }
1397     },
1398
1399     </span><span class="jsdoc-var">beforeInitialResize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1400
1401     },
1402
1403     </span><span class="jsdoc-var">onColumnSplitterMoved </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">){
1404         </span><span class="jsdoc-var">this.userResized </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
1405         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.grid.colModel</span><span class="jsdoc-syntax">;
1406         </span><span class="jsdoc-var">cm.setColumnWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
1407         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getColumnId</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">);
1408         </span><span class="jsdoc-var">this.css.updateRule</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.colSelector </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.idToCssName</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cid</span><span class="jsdoc-syntax">), </span><span class="jsdoc-string">&quot;width&quot;</span><span class="jsdoc-syntax">, (</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">-</span><span class="jsdoc-var">this.borderWidth</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">&quot;px&quot;</span><span class="jsdoc-syntax">);
1409         </span><span class="jsdoc-var">this.css.updateRule</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hdSelector </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.idToCssName</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cid</span><span class="jsdoc-syntax">), </span><span class="jsdoc-string">&quot;width&quot;</span><span class="jsdoc-syntax">, (</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">-</span><span class="jsdoc-var">this.borderWidth</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">&quot;px&quot;</span><span class="jsdoc-syntax">);
1410         </span><span class="jsdoc-var">this.updateSplitters</span><span class="jsdoc-syntax">();
1411         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
1412         </span><span class="jsdoc-var">this.grid.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;columnresize&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">);
1413     },
1414
1415     </span><span class="jsdoc-var">syncRowHeights </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">startIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">endIndex</span><span class="jsdoc-syntax">){
1416         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.enableRowHeightSync </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.cm.getLockedCount</span><span class="jsdoc-syntax">() &gt; 0){
1417             </span><span class="jsdoc-var">startIndex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">startIndex </span><span class="jsdoc-syntax">|| 0;
1418             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">mrows </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getBodyTable</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.rows</span><span class="jsdoc-syntax">;
1419             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">lrows </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getLockedTable</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.rows</span><span class="jsdoc-syntax">;
1420             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">mrows.length</span><span class="jsdoc-syntax">-1;
1421             </span><span class="jsdoc-var">endIndex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.min</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">endIndex </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">);
1422             </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">startIndex</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt;= </span><span class="jsdoc-var">endIndex</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
1423                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">m </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">mrows</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">], </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">lrows</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
1424                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m.offsetHeight</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">l.offsetHeight</span><span class="jsdoc-syntax">);
1425                 </span><span class="jsdoc-var">m.style.height </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">l.style.height </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot;px&quot;</span><span class="jsdoc-syntax">;
1426             }
1427         }
1428     },
1429
1430     </span><span class="jsdoc-var">layout </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">initialRender</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">is2ndPass</span><span class="jsdoc-syntax">){
1431         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">g </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.grid</span><span class="jsdoc-syntax">;
1432         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">auto </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">g.autoHeight</span><span class="jsdoc-syntax">;
1433         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">scrollOffset </span><span class="jsdoc-syntax">= 16;
1434         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">g.getGridEl</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">cm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.cm</span><span class="jsdoc-syntax">,
1435                 </span><span class="jsdoc-var">expandCol </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">g.autoExpandColumn</span><span class="jsdoc-syntax">,
1436                 </span><span class="jsdoc-var">gv </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
1437         </span><span class="jsdoc-comment">//c.beginMeasure();
1438
1439         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">c.dom.offsetWidth</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// display:none?
1440             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">initialRender</span><span class="jsdoc-syntax">){
1441                 </span><span class="jsdoc-var">this.lockedWrap.show</span><span class="jsdoc-syntax">();
1442                 </span><span class="jsdoc-var">this.mainWrap.show</span><span class="jsdoc-syntax">();
1443             }
1444             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1445         }
1446
1447         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hasLock </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.cm.isLocked</span><span class="jsdoc-syntax">(0);
1448
1449         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tbh </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.headerPanel.getHeight</span><span class="jsdoc-syntax">();
1450         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">bbh </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.footerPanel.getHeight</span><span class="jsdoc-syntax">();
1451
1452         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">auto</span><span class="jsdoc-syntax">){
1453             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ch </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getBodyTable</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.offsetHeight </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">tbh </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">bbh </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.mainHd.getHeight</span><span class="jsdoc-syntax">();
1454             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">newHeight </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ch </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">c.getBorderWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;tb&quot;</span><span class="jsdoc-syntax">);
1455             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">g.maxHeight</span><span class="jsdoc-syntax">){
1456                 </span><span class="jsdoc-var">newHeight </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.min</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">g.maxHeight</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">newHeight</span><span class="jsdoc-syntax">);
1457             }
1458             </span><span class="jsdoc-var">c.setHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">newHeight</span><span class="jsdoc-syntax">);
1459         }
1460
1461         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">g.autoWidth</span><span class="jsdoc-syntax">){
1462             </span><span class="jsdoc-var">c.setWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cm.getTotalWidth</span><span class="jsdoc-syntax">()+</span><span class="jsdoc-var">c.getBorderWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'lr'</span><span class="jsdoc-syntax">));
1463         }
1464
1465         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">s </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.scroller</span><span class="jsdoc-syntax">;
1466
1467         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">csize </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">c.getSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
1468
1469         </span><span class="jsdoc-var">this.el.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">csize.width</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">csize.height</span><span class="jsdoc-syntax">);
1470
1471         </span><span class="jsdoc-var">this.headerPanel.setWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">csize.width</span><span class="jsdoc-syntax">);
1472         </span><span class="jsdoc-var">this.footerPanel.setWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">csize.width</span><span class="jsdoc-syntax">);
1473
1474         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hdHeight </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.mainHd.getHeight</span><span class="jsdoc-syntax">();
1475         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">vw </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">csize.width</span><span class="jsdoc-syntax">;
1476         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">vh </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">csize.height </span><span class="jsdoc-syntax">- (</span><span class="jsdoc-var">tbh </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">bbh</span><span class="jsdoc-syntax">);
1477
1478         </span><span class="jsdoc-var">s.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">vw</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">vh</span><span class="jsdoc-syntax">);
1479
1480         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">bt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getBodyTable</span><span class="jsdoc-syntax">();
1481         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ltWidth </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">hasLock </span><span class="jsdoc-syntax">?
1482                       </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.getLockedTable</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.offsetWidth</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.lockedHd.dom.firstChild.offsetWidth</span><span class="jsdoc-syntax">) : 0;
1483
1484         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">scrollHeight </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">bt.offsetHeight</span><span class="jsdoc-syntax">;
1485         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">scrollWidth </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ltWidth </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">bt.offsetWidth</span><span class="jsdoc-syntax">;
1486         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">vscroll </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">hscroll </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
1487
1488         </span><span class="jsdoc-var">this.scrollSizer.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">scrollWidth</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scrollHeight</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">hdHeight</span><span class="jsdoc-syntax">);
1489
1490         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">lw </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.lockedWrap</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">mw </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.mainWrap</span><span class="jsdoc-syntax">;
1491         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">lb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.lockedBody</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">mb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.mainBody</span><span class="jsdoc-syntax">;
1492
1493         </span><span class="jsdoc-var">setTimeout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1494             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">s.dom.offsetTop</span><span class="jsdoc-syntax">;
1495             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">s.dom.clientWidth</span><span class="jsdoc-syntax">,
1496                 </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">s.dom.clientHeight</span><span class="jsdoc-syntax">;
1497
1498             </span><span class="jsdoc-var">lw.setTop</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">);
1499             </span><span class="jsdoc-var">lw.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ltWidth</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">);
1500
1501             </span><span class="jsdoc-var">mw.setLeftTop</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ltWidth</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">);
1502             </span><span class="jsdoc-var">mw.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">-</span><span class="jsdoc-var">ltWidth</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">);
1503
1504             </span><span class="jsdoc-var">lb.setHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">-</span><span class="jsdoc-var">hdHeight</span><span class="jsdoc-syntax">);
1505             </span><span class="jsdoc-var">mb.setHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">-</span><span class="jsdoc-var">hdHeight</span><span class="jsdoc-syntax">);
1506
1507             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">is2ndPass </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">true </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">gv.userResized </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">expandCol</span><span class="jsdoc-syntax">){
1508                 </span><span class="jsdoc-comment">// high speed resize without full column calculation
1509                 
1510                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ci </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getIndexById</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">expandCol</span><span class="jsdoc-syntax">);
1511                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ci </span><span class="jsdoc-syntax">&lt; 0) {
1512                     </span><span class="jsdoc-var">ci </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.findColumnIndex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">expandCol</span><span class="jsdoc-syntax">);
1513                 }
1514                 </span><span class="jsdoc-var">ci </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">ci</span><span class="jsdoc-syntax">); </span><span class="jsdoc-comment">// make sure it's got at least the first col.
1515                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">expandId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getColumnId</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ci</span><span class="jsdoc-syntax">);
1516                 </span><span class="jsdoc-keyword">var  </span><span class="jsdoc-var">tw </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getTotalWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
1517                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">currentWidth </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getColumnWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ci</span><span class="jsdoc-syntax">);
1518                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cw </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.min</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(((</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">-</span><span class="jsdoc-var">tw</span><span class="jsdoc-syntax">)+</span><span class="jsdoc-var">currentWidth</span><span class="jsdoc-syntax">-2)-</span><span class="jsdoc-comment">/*scrollbar*/</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">&lt;= </span><span class="jsdoc-var">s.dom.offsetWidth </span><span class="jsdoc-syntax">? 0 : 18), </span><span class="jsdoc-var">g.autoExpandMin</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">g.autoExpandMax</span><span class="jsdoc-syntax">);
1519                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">currentWidth </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">cw</span><span class="jsdoc-syntax">){
1520                     </span><span class="jsdoc-var">cm.setColumnWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ci</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cw</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
1521                     </span><span class="jsdoc-var">gv.css.updateRule</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">gv.colSelector</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">gv.idToCssName</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">expandId</span><span class="jsdoc-syntax">), </span><span class="jsdoc-string">&quot;width&quot;</span><span class="jsdoc-syntax">, (</span><span class="jsdoc-var">cw </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">gv.borderWidth</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">&quot;px&quot;</span><span class="jsdoc-syntax">);
1522                     </span><span class="jsdoc-var">gv.css.updateRule</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">gv.hdSelector</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">gv.idToCssName</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">expandId</span><span class="jsdoc-syntax">), </span><span class="jsdoc-string">&quot;width&quot;</span><span class="jsdoc-syntax">, (</span><span class="jsdoc-var">cw </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">gv.borderWidth</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">&quot;px&quot;</span><span class="jsdoc-syntax">);
1523                     </span><span class="jsdoc-var">gv.updateSplitters</span><span class="jsdoc-syntax">();
1524                     </span><span class="jsdoc-var">gv.layout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
1525                 }
1526             }
1527
1528             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">initialRender</span><span class="jsdoc-syntax">){
1529                 </span><span class="jsdoc-var">lw.show</span><span class="jsdoc-syntax">();
1530                 </span><span class="jsdoc-var">mw.show</span><span class="jsdoc-syntax">();
1531             }
1532             </span><span class="jsdoc-comment">//c.endMeasure();
1533         </span><span class="jsdoc-syntax">}, 10);
1534     },
1535
1536     </span><span class="jsdoc-var">onWindowResize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1537         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.grid.monitorWindowResize </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.grid.autoHeight</span><span class="jsdoc-syntax">){
1538             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1539         }
1540         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
1541     },
1542
1543     </span><span class="jsdoc-var">appendFooter </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">parentEl</span><span class="jsdoc-syntax">){
1544         </span><span class="jsdoc-keyword">return null</span><span class="jsdoc-syntax">;
1545     },
1546
1547     </span><span class="jsdoc-var">sortAscText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Sort Ascending&quot;</span><span class="jsdoc-syntax">,
1548     </span><span class="jsdoc-var">sortDescText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Sort Descending&quot;</span><span class="jsdoc-syntax">,
1549     </span><span class="jsdoc-var">lockText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Lock Column&quot;</span><span class="jsdoc-syntax">,
1550     </span><span class="jsdoc-var">unlockText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Unlock Column&quot;</span><span class="jsdoc-syntax">,
1551     </span><span class="jsdoc-var">columnsText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Columns&quot;
1552 </span><span class="jsdoc-syntax">});
1553
1554
1555 </span><span class="jsdoc-var">Roo.grid.GridView.ColumnDragZone </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">grid</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">hd</span><span class="jsdoc-syntax">){
1556     </span><span class="jsdoc-var">Roo.grid.GridView.ColumnDragZone.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">grid</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">hd</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">);
1557     </span><span class="jsdoc-var">this.proxy.el.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'x-grid3-col-dd'</span><span class="jsdoc-syntax">);
1558 };
1559
1560 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.grid.GridView.ColumnDragZone</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.grid.HeaderDragZone</span><span class="jsdoc-syntax">, {
1561     </span><span class="jsdoc-var">handleMouseDown </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
1562
1563     },
1564
1565     </span><span class="jsdoc-var">callHandleMouseDown </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
1566         </span><span class="jsdoc-var">Roo.grid.GridView.ColumnDragZone.superclass.handleMouseDown.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
1567     }
1568 });
1569 </span></code></body></html>