Fix #5718 - Change the order / layout of tabs. / new master lists
[roojs1] / docs / src / Roo_grid_GridView.js.html
1 <html><head><title>/home/edward/gitlive/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-var">unselectable </span><span class="jsdoc-syntax">:  </span><span class="jsdoc-string">'unselectable=&quot;on&quot;'</span><span class="jsdoc-syntax">,
29     </span><span class="jsdoc-var">unselectableCls </span><span class="jsdoc-syntax">:  </span><span class="jsdoc-string">'x-unselectable'</span><span class="jsdoc-syntax">,
30
31
32     </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">,
33
34     </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">,
35
36     </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">,
37
38     </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">,
39
40     </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">,
41
42     </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">],
43
44     </span><span class="jsdoc-var">enableMoveAnim </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
45
46     </span><span class="jsdoc-var">hlColor</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;C3DAF9&quot;</span><span class="jsdoc-syntax">,
47
48     </span><span class="jsdoc-var">dh </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.DomHelper</span><span class="jsdoc-syntax">,
49
50     </span><span class="jsdoc-var">fly </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.Element.fly</span><span class="jsdoc-syntax">,
51
52     </span><span class="jsdoc-var">css </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.util.CSS</span><span class="jsdoc-syntax">,
53
54     </span><span class="jsdoc-var">borderWidth</span><span class="jsdoc-syntax">: 1,
55
56     </span><span class="jsdoc-var">splitOffset</span><span class="jsdoc-syntax">: 3,
57
58     </span><span class="jsdoc-var">scrollIncrement </span><span class="jsdoc-syntax">: 22,
59
60     </span><span class="jsdoc-var">cellRE</span><span class="jsdoc-syntax">: /(?:.*?)x-grid-(?:hd|cell|csplit)-(?:[\d]+)-([\d]+)(?:.*?)/,
61
62     </span><span class="jsdoc-var">findRE</span><span class="jsdoc-syntax">: /\s?(?:x-grid-hd|x-grid-col|x-grid-csplit)\s/,
63
64     </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">){
65         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.ds</span><span class="jsdoc-syntax">){
66             </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">);
67             </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">);
68             </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">);
69             </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">);
70             </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">);
71             </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">);
72         }
73         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ds</span><span class="jsdoc-syntax">){
74             </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">);
75             </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">);
76             </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">);
77             </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">);
78             </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">);
79             </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">);
80         }
81         </span><span class="jsdoc-var">this.ds </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ds</span><span class="jsdoc-syntax">;
82
83         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.cm</span><span class="jsdoc-syntax">){
84             </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">);
85             </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">);
86             </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">);
87             </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">);
88             </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">);
89         }
90         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cm</span><span class="jsdoc-syntax">){
91             </span><span class="jsdoc-var">this.generateRules</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cm</span><span class="jsdoc-syntax">);
92             </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">);
93             </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">);
94             </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">);
95             </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">);
96             </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">);
97         }
98         </span><span class="jsdoc-var">this.cm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm</span><span class="jsdoc-syntax">;
99     },
100
101     </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">){
102         </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">);
103
104         </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">);
105
106         </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">);
107
108         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">grid.trackMouseOver</span><span class="jsdoc-syntax">){
109             </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">);
110             </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">);
111         }
112         </span><span class="jsdoc-var">grid.cancelTextSelection </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){};
113         </span><span class="jsdoc-var">this.gridId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">grid.id</span><span class="jsdoc-syntax">;
114
115         </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">|| {};
116
117         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">tpls.master</span><span class="jsdoc-syntax">){
118             </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">(
119                </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid&quot; hidefocus=&quot;true&quot;&gt;'</span><span class="jsdoc-syntax">,
120                 </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">,
121                   </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid-topbar&quot;&gt;&lt;/div&gt;'</span><span class="jsdoc-syntax">,
122                   </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">,
123                   </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid-locked&quot;&gt;'</span><span class="jsdoc-syntax">,
124                       </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid-header&quot;&gt;{lockedHeader}&lt;/div&gt;'</span><span class="jsdoc-syntax">,
125                       </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid-body&quot;&gt;{lockedBody}&lt;/div&gt;'</span><span class="jsdoc-syntax">,
126                   </span><span class="jsdoc-string">&quot;&lt;/div&gt;&quot;</span><span class="jsdoc-syntax">,
127                   </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid-viewport&quot;&gt;'</span><span class="jsdoc-syntax">,
128                       </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid-header&quot;&gt;{header}&lt;/div&gt;'</span><span class="jsdoc-syntax">,
129                       </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid-body&quot;&gt;{body}&lt;/div&gt;'</span><span class="jsdoc-syntax">,
130                   </span><span class="jsdoc-string">&quot;&lt;/div&gt;&quot;</span><span class="jsdoc-syntax">,
131                   </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid-bottombar&quot;&gt;&lt;/div&gt;'</span><span class="jsdoc-syntax">,
132
133                   </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">,
134                </span><span class="jsdoc-string">&quot;&lt;/div&gt;&quot;
135             </span><span class="jsdoc-syntax">);
136             </span><span class="jsdoc-var">tpls.master.disableformats </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
137         }
138
139         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">tpls.header</span><span class="jsdoc-syntax">){
140             </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">(
141                </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">,
142                </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">,
143                </span><span class="jsdoc-string">&quot;&lt;/table&gt;{splits}&quot;
144             </span><span class="jsdoc-syntax">);
145             </span><span class="jsdoc-var">tpls.header.disableformats </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
146         }
147         </span><span class="jsdoc-var">tpls.header.compile</span><span class="jsdoc-syntax">();
148
149         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">tpls.hcell</span><span class="jsdoc-syntax">){
150             </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">(
151                 </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">,
152                 </span><span class="jsdoc-string">'&lt;div class=&quot;x-grid-hd-text ' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.unselectableCls </span><span class="jsdoc-syntax">+  </span><span class="jsdoc-string">'&quot; ' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.unselectable </span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">'&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">,
153                 </span><span class="jsdoc-string">&quot;&lt;/div&gt;&lt;/td&gt;&quot;
154              </span><span class="jsdoc-syntax">);
155              </span><span class="jsdoc-var">tpls.hcell.disableFormats </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
156         }
157         </span><span class="jsdoc-var">tpls.hcell.compile</span><span class="jsdoc-syntax">();
158
159         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">tpls.hsplit</span><span class="jsdoc-syntax">){
160             </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} ' </span><span class="jsdoc-syntax">+
161                                             </span><span class="jsdoc-var">this.unselectableCls </span><span class="jsdoc-syntax">+  </span><span class="jsdoc-string">'&quot; ' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.unselectable </span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">'&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 ' </span><span class="jsdoc-syntax">+
186                     </span><span class="jsdoc-var">this.unselectableCls </span><span class="jsdoc-syntax">+  </span><span class="jsdoc-string">'&quot; ' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.unselectable </span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">'&quot; {attr}&gt;{value}&lt;/div&gt;&lt;/div&gt;'</span><span class="jsdoc-syntax">,
187                 </span><span class="jsdoc-string">&quot;&lt;/td&gt;&quot;
188             </span><span class="jsdoc-syntax">);
189             </span><span class="jsdoc-var">tpls.cell.disableFormats </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
190         }
191         </span><span class="jsdoc-var">tpls.cell.compile</span><span class="jsdoc-syntax">();
192
193         </span><span class="jsdoc-var">this.templates </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">tpls</span><span class="jsdoc-syntax">;
194     },
195
196     </span><span class="jsdoc-comment">// remap these for backwards compat
197     </span><span class="jsdoc-var">onColWidthChange </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
198         </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">);
199     },
200     </span><span class="jsdoc-var">onHeaderChange </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
201         </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">);
202     },
203     </span><span class="jsdoc-var">onHiddenChange </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
204         </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">);
205     },
206     </span><span class="jsdoc-var">onColumnMove </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
207         </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">);
208     },
209     </span><span class="jsdoc-var">onColumnLock </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
210         </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">);
211     },
212
213     </span><span class="jsdoc-var">onDataChange </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
214         </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">();
215         </span><span class="jsdoc-var">this.updateHeaderSortState</span><span class="jsdoc-syntax">();
216     },
217
218     </span><span class="jsdoc-var">onClear </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
219         </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">();
220     },
221
222     </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">){
223         </span><span class="jsdoc-var">this.refreshRow</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">);
224     },
225
226     </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">){
227         </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">;
228         </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">){
229             </span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">;
230             </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">);
231         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
232             </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">);
233         }
234         </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">);
235         </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">);
236         </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">);
237         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
238         </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">);
239     },
240
241     </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">){
242         </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));
243     },
244
245     </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">){
246         </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">){
247             </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">);
248         }
249         </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">();
250         </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">]){
251             </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">]);
252         }
253         </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">]){
254             </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">]);
255         }
256         </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">){
257             </span><span class="jsdoc-var">this.stripeRows</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
258             </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">);
259             </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
260             </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">);
261         }
262     },
263
264     </span><span class="jsdoc-var">onLoad </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
265         </span><span class="jsdoc-var">this.scrollToTop</span><span class="jsdoc-syntax">();
266     },
267
268     </span><span class="jsdoc-comment">/**
269      * Scrolls the grid to the top
270      */
271     </span><span class="jsdoc-var">scrollToTop </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
272         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.scroller</span><span class="jsdoc-syntax">){
273             </span><span class="jsdoc-var">this.scroller.dom.scrollTop </span><span class="jsdoc-syntax">= 0;
274             </span><span class="jsdoc-var">this.syncScroll</span><span class="jsdoc-syntax">();
275         }
276     },
277
278     </span><span class="jsdoc-comment">/**
279      * Gets a panel in the header of the grid that can be used for toolbars etc.
280      * After modifying the contents of this panel a call to grid.autoSize() may be
281      * required to register any changes in size.
282      * @param {Boolean} doShow By default the header is hidden. Pass true to show the panel
283      * @return Roo.Element
284      */
285     </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">){
286         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">doShow</span><span class="jsdoc-syntax">){
287             </span><span class="jsdoc-var">this.headerPanel.show</span><span class="jsdoc-syntax">();
288         }
289         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.headerPanel</span><span class="jsdoc-syntax">;
290     },
291
292     </span><span class="jsdoc-comment">/**
293      * Gets a panel in the footer of the grid that can be used for toolbars etc.
294      * After modifying the contents of this panel a call to grid.autoSize() may be
295      * required to register any changes in size.
296      * @param {Boolean} doShow By default the footer is hidden. Pass true to show the panel
297      * @return Roo.Element
298      */
299     </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">){
300         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">doShow</span><span class="jsdoc-syntax">){
301             </span><span class="jsdoc-var">this.footerPanel.show</span><span class="jsdoc-syntax">();
302         }
303         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.footerPanel</span><span class="jsdoc-syntax">;
304     },
305
306     </span><span class="jsdoc-var">initElements </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
307         </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">;
308         </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">;
309         </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">;
310
311         </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">);
312
313          </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">el.firstChild</span><span class="jsdoc-syntax">);
314         </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">);
315
316         </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">cs</span><span class="jsdoc-syntax">[1]);
317         </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">);
318
319         </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">[2]);
320         </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">);
321
322         </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">[3]);
323         </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">);
324         </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]);
325
326         </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">[4]);
327         </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">);
328         </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]);
329
330         </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">[5]);
331         </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">);
332
333         </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]);
334
335         </span><span class="jsdoc-var">this.headerSelector </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">String.format</span><span class="jsdoc-syntax">(
336            </span><span class="jsdoc-string">'#{0} td.x-grid-hd, #{1} td.x-grid-hd'</span><span class="jsdoc-syntax">,
337            </span><span class="jsdoc-var">this.lockedHd.id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.mainHd.id
338         </span><span class="jsdoc-syntax">);
339
340         </span><span class="jsdoc-var">this.splitterSelector </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">String.format</span><span class="jsdoc-syntax">(
341            </span><span class="jsdoc-string">'#{0} div.x-grid-split, #{1} div.x-grid-split'</span><span class="jsdoc-syntax">,
342            </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">)
343         );
344     },
345     </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">)
346     {
347         </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">);
348     },
349
350     </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">){
351         </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">];
352     },
353
354     </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">){
355         </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">;
356     },
357
358     </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">){
359         </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">;
360     },
361
362     </span><span class="jsdoc-var">getLockedTable </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
363         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.lockedBody.dom.firstChild</span><span class="jsdoc-syntax">;
364     },
365
366     </span><span class="jsdoc-var">getBodyTable </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
367         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.mainBody.dom.firstChild</span><span class="jsdoc-syntax">;
368     },
369
370     </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">){
371         </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">];
372     },
373
374     </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">){
375         </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">];
376     },
377
378     </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">){
379         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.rowEl</span><span class="jsdoc-syntax">){
380             </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">();
381         }
382         </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">;
383         </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">)){
384             </span><span class="jsdoc-var">els.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">lrow</span><span class="jsdoc-syntax">);
385         }
386         </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">)){
387             </span><span class="jsdoc-var">els.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">mrow</span><span class="jsdoc-syntax">);
388         }
389         </span><span class="jsdoc-var">this.rowEl.elements </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">els</span><span class="jsdoc-syntax">;
390         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.rowEl</span><span class="jsdoc-syntax">;
391     },
392     </span><span class="jsdoc-comment">/**
393      * Gets the 'td' of the cell
394      * 
395      * @param {Integer} rowIndex row to select
396      * @param {Integer} colIndex column to select
397      * 
398      * @return {Object} 
399      */
400     </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">){
401         </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">();
402         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">source</span><span class="jsdoc-syntax">;
403         </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">){
404             </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">;
405         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
406             </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">;
407             </span><span class="jsdoc-var">colIndex </span><span class="jsdoc-syntax">-= </span><span class="jsdoc-var">locked</span><span class="jsdoc-syntax">;
408         }
409         </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">];
410     },
411
412     </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">){
413         </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">;
414     },
415
416     </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">){
417         </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">();
418         </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
419             </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">();
420         }
421         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">;
422     },
423
424     </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">){
425         </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">);
426         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">){
427             </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);
428         }
429         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">0;
430     },
431
432     </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">){
433         </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);
434         </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">;
435     },
436
437     </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">){
438         </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);
439         </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">;
440     },
441
442     </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">){
443         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">){
444             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
445         }
446         </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);
447         </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">;
448     },
449
450     </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">){
451         </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">;
452         </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">){
453             </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">)){
454                 </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">);
455             }
456             </span><span class="jsdoc-var">node </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node.parentNode</span><span class="jsdoc-syntax">;
457         }
458         </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
459     },
460
461     </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">){
462         </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">);
463     },
464
465     </span><span class="jsdoc-var">getSplitters </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
466     {
467         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.splitterSelector</span><span class="jsdoc-syntax">){
468            </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">);
469         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
470             </span><span class="jsdoc-keyword">return null</span><span class="jsdoc-syntax">;
471       }
472     },
473
474     </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">){
475         </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">];
476     },
477
478     </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">){
479         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">;
480         </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">){
481             </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">);
482         }
483     },
484
485     </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">){
486         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">;
487         </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">())){
488             </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">);
489         }
490     },
491
492     </span><span class="jsdoc-var">renderHeaders </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
493         </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">;
494         </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">;
495         </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">= {};
496         </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">++){
497             </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">;
498             </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">;
499             </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">);
500             </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">;
501             </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">''</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">p.value</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.match</span><span class="jsdoc-syntax">(/\&lt;/)  ? </span><span class="jsdoc-string">'' </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">;
502             </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">;
503             </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">)){
504                 </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">);
505                 </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">);
506             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
507                 </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">);
508                 </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">);
509             }
510         }
511         </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">)}),
512                 </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">)})];
513     },
514
515     </span><span class="jsdoc-var">updateHeaders </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
516         </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">();
517         </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]);
518         </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]);
519     },
520
521     </span><span class="jsdoc-comment">/**
522      * Focuses the specified row.
523      * @param {Number} row The row index
524      */
525     </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">)
526     {
527         </span><span class="jsdoc-comment">//Roo.log('GridView.focusRow');
528         </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">;
529         </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">);
530         </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">;
531     },
532
533     </span><span class="jsdoc-comment">/**
534      * Focuses the specified cell.
535      * @param {Number} row The row index
536      * @param {Number} col The column index
537      * @param {Boolean} hscroll false to disable horizontal scrolling
538      */
539     </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">)
540     {
541         </span><span class="jsdoc-comment">//Roo.log('GridView.focusCell');
542         </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">);
543         </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">);
544         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isGecko</span><span class="jsdoc-syntax">){
545             </span><span class="jsdoc-var">this.focusEl.focus</span><span class="jsdoc-syntax">();
546         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
547             </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">);
548         }
549     },
550
551     </span><span class="jsdoc-comment">/**
552      * Scrolls the specified cell into view
553      * @param {Number} row The row index
554      * @param {Number} col The column index
555      * @param {Boolean} hscroll false to disable horizontal scrolling
556      */
557     </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">)
558     {
559         </span><span class="jsdoc-comment">//Roo.log('GridView.ensureVisible,' + row + ',' + col);
560         //return null; //disable for testing.
561         </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">){
562             </span><span class="jsdoc-var">row </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">row.rowIndex</span><span class="jsdoc-syntax">;
563         }
564         </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">()){
565             </span><span class="jsdoc-keyword">return  null</span><span class="jsdoc-syntax">;
566         }
567         </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);
568         </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">;
569         </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">)){
570             </span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">++;
571         }
572
573         </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">);
574         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">){
575             </span><span class="jsdoc-keyword">return null</span><span class="jsdoc-syntax">;
576         }
577         </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">;
578
579         </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);
580         </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);
581         </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">;
582         </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">;
583
584         </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">;
585         </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);
586         </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);
587         </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">;
588         </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">;
589         </span><span class="jsdoc-comment">/*
590         Roo.log('GridView.ensureVisible:' +
591                 ' ctop:' + ctop +
592                 ' c.clientHeight:' + c.clientHeight +
593                 ' this.mainHd.dom.offsetHeight:' + this.mainHd.dom.offsetHeight +
594                 ' stop:' + stop +
595                 ' cbot:' + cbot +
596                 ' sbot:' + sbot +
597                 ' ch:' + ch  
598                 );
599         */
600         </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">){
601              </span><span class="jsdoc-var">c.scrollTop </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ctop</span><span class="jsdoc-syntax">;
602             </span><span class="jsdoc-comment">//Roo.log(&quot;set scrolltop to ctop DISABLE?&quot;);
603         </span><span class="jsdoc-syntax">}</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">){
604             </span><span class="jsdoc-comment">//Roo.log(&quot;set scrolltop to cbot-ch&quot;);
605             </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">;
606         }
607
608         </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">){
609             </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">){
610                 </span><span class="jsdoc-var">c.scrollLeft </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cleft</span><span class="jsdoc-syntax">;
611             }</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">){
612                 </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">;
613             }
614         }
615
616         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">;
617     },
618
619     </span><span class="jsdoc-var">updateColumns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
620         </span><span class="jsdoc-var">this.grid.stopEditing</span><span class="jsdoc-syntax">();
621         </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">();
622         </span><span class="jsdoc-comment">//var totalWidth = cm.getTotalWidth();
623         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">pos </span><span class="jsdoc-syntax">= 0;
624         </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">++){
625             </span><span class="jsdoc-comment">//if(cm.isHidden(i)) continue;
626             </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">);
627             </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">);
628             </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">);
629         }
630         </span><span class="jsdoc-var">this.updateSplitters</span><span class="jsdoc-syntax">();
631     },
632
633     </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">){
634         </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">;
635         </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">);
636         </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">++){
637             </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">);
638             </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">;
639             </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">){
640                 </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">;
641             }
642             </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">;
643             </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">)){
644                 </span><span class="jsdoc-var">hidden </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'display:none;'</span><span class="jsdoc-syntax">;
645             }
646             </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">;
647             </span><span class="jsdoc-var">ruleBuf.push</span><span class="jsdoc-syntax">(
648                     </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">,
649                     </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">,
650                     </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">,
651                     </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">);
652         }
653         </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">);
654     },
655
656     </span><span class="jsdoc-var">updateSplitters </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
657         </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">();
658         </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
659             </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">;
660             </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">++){
661                 </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">)) {
662                     </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
663                 }
664                 </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">); </span><span class="jsdoc-comment">// make sure it's a number
665                 </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">){
666                     </span><span class="jsdoc-var">pos </span><span class="jsdoc-syntax">= 0;
667                     </span><span class="jsdoc-var">locked </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
668                 }
669                 </span><span class="jsdoc-var">pos </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">;
670                 </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">;
671             }
672         }
673     },
674
675     </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">){
676         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hidden</span><span class="jsdoc-syntax">){
677             </span><span class="jsdoc-var">this.hideColumn</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">);
678         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
679             </span><span class="jsdoc-var">this.unhideColumn</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">);
680         }
681     },
682
683     </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">){
684         </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">);
685         </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">);
686         </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">);
687         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isSafari</span><span class="jsdoc-syntax">){
688             </span><span class="jsdoc-var">this.updateHeaders</span><span class="jsdoc-syntax">();
689         }
690         </span><span class="jsdoc-var">this.updateSplitters</span><span class="jsdoc-syntax">();
691         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
692     },
693
694     </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">){
695         </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">);
696         </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">);
697         </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">);
698
699         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isSafari</span><span class="jsdoc-syntax">){
700             </span><span class="jsdoc-var">this.updateHeaders</span><span class="jsdoc-syntax">();
701         }
702         </span><span class="jsdoc-var">this.updateSplitters</span><span class="jsdoc-syntax">();
703         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
704     },
705
706     </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">){
707         </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){
708             </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">();
709         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
710             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">isUpdate</span><span class="jsdoc-syntax">){
711                 </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">);
712             }
713             </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">();
714             </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">);
715             </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">);
716             </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">);
717             </span><span class="jsdoc-var">this.restoreScroll</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">);
718             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">isUpdate</span><span class="jsdoc-syntax">){
719                 </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">);
720                 </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">);
721                 </span><span class="jsdoc-var">this.stripeRows</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">firstRow</span><span class="jsdoc-syntax">);
722                 </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
723             }
724         }
725     },
726
727     </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">){
728         </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];
729         </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">){
730             </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">];
731         }
732         </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">);
733         </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">;
734         </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">;
735         </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">++){
736             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">before</span><span class="jsdoc-syntax">){
737                 </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">);
738             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
739                 </span><span class="jsdoc-var">tbody.appendChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rows</span><span class="jsdoc-syntax">[0]);
740             }
741         }
742         </span><span class="jsdoc-var">b.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">;
743         </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
744     },
745
746     </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">){
747         </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){
748             </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">);
749             </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">);
750             </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">);
751             </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">);
752         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
753             </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">);
754             </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">();
755             </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">;
756             </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">;
757             </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">++){
758                 </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">]);
759             }
760             </span><span class="jsdoc-var">this.stripeRows</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">firstRow</span><span class="jsdoc-syntax">);
761             </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">);
762         }
763     },
764
765     </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">){
766         </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">();
767         </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">();
768         </span><span class="jsdoc-var">this.restoreScroll</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">);
769     },
770
771     </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">){
772         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">noRefresh</span><span class="jsdoc-syntax">){
773            </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">();
774         }
775         </span><span class="jsdoc-var">this.updateHeaderSortState</span><span class="jsdoc-syntax">();
776     },
777
778     </span><span class="jsdoc-var">getScrollState </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
779
780         </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">;
781         </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">};
782     },
783
784     </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">){
785         </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){
786             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
787         }
788         </span><span class="jsdoc-var">startRow </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">startRow </span><span class="jsdoc-syntax">|| 0;
789         </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">;
790         </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">;
791         </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">;
792         </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">++){
793             </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">];
794             </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);
795             </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;
796             </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">){
797                 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
798             }
799             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isAlt</span><span class="jsdoc-syntax">){
800                 </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">;
801             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
802                 </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">);
803             }
804             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">lrow</span><span class="jsdoc-syntax">){
805                 </span><span class="jsdoc-var">lrow.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">row.className</span><span class="jsdoc-syntax">;
806             }
807         }
808     },
809
810     </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">){
811         </span><span class="jsdoc-comment">//Roo.log('GridView.restoreScroll');
812         </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">;
813         </span><span class="jsdoc-var">sb.scrollLeft </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">state.left</span><span class="jsdoc-syntax">;
814         </span><span class="jsdoc-var">sb.scrollTop </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">state.top</span><span class="jsdoc-syntax">;
815         </span><span class="jsdoc-var">this.syncScroll</span><span class="jsdoc-syntax">();
816     },
817
818     </span><span class="jsdoc-var">syncScroll </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
819         </span><span class="jsdoc-comment">//Roo.log('GridView.syncScroll');
820         </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">;
821         </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">;
822         </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">;
823         </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">;
824         </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">;
825         </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">;
826     },
827
828     </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">){
829         </span><span class="jsdoc-var">this.syncScroll</span><span class="jsdoc-syntax">();
830         </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">;
831         </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">);
832         </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
833     },
834
835     </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">){
836         </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">();
837         </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;
838         </span><span class="jsdoc-comment">// set this here to prevent jumpy scrolling on large tables
839         </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">;
840         </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
841     },
842
843     </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">){
844         </span><span class="jsdoc-comment">// pull in all the crap needed to render rows
845         </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">;
846         </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">();
847
848         </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){
849             </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">];
850         }
851
852         </span><span class="jsdoc-comment">// build a map for all the columns
853         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cs </span><span class="jsdoc-syntax">= [];
854         </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">++){
855             </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">);
856             </span><span class="jsdoc-var">cs</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = {
857                 </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">,
858                 </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">),
859                 </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">),
860                 </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">),
861                 </span><span class="jsdoc-var">has_editor </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cm.isCellEditable</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">)
862             };
863         }
864
865         </span><span class="jsdoc-var">startRow </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">startRow </span><span class="jsdoc-syntax">|| 0;
866         </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">;
867
868         </span><span class="jsdoc-comment">// records to render
869         </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">);
870
871         </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">);
872     },
873
874     </span><span class="jsdoc-comment">// As much as I hate to duplicate code, this was branched because FireFox really hates
875     // [].join(&quot;&quot;) on strings. The performance difference was substantial enough to
876     // branch this function
877     </span><span class="jsdoc-var">doRender </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.isGecko </span><span class="jsdoc-syntax">?
878             </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">){
879                 </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">;
880                 </span><span class="jsdoc-comment">// buffers
881                 </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">;
882
883                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hasListener </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.grid.hasListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'rowclass'</span><span class="jsdoc-syntax">);
884                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rowcfg </span><span class="jsdoc-syntax">= {};
885                 </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">++){
886                     </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">);
887                     </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">++){
888                         </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">];
889                         </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">;
890                         </span><span class="jsdoc-var">p.id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">c.id</span><span class="jsdoc-syntax">;
891                         </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">;
892                         </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">);
893                         </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">) {
894                             </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                         }
896                         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c.has_editor</span><span class="jsdoc-syntax">){
897                             </span><span class="jsdoc-var">p.css </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">' x-grid-editable-cell'</span><span class="jsdoc-syntax">;
898                         }
899                         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c.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">){
900                             </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">;
901                         }
902                         </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">);
903                         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">c.locked</span><span class="jsdoc-syntax">){
904                             </span><span class="jsdoc-var">cb</span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">markup</span><span class="jsdoc-syntax">;
905                         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
906                             </span><span class="jsdoc-var">lcb</span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">markup</span><span class="jsdoc-syntax">;
907                         }
908                     }
909                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">alt </span><span class="jsdoc-syntax">= [];
910                     </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)){
911                         </span><span class="jsdoc-var">alt.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-grid-row-alt&quot;</span><span class="jsdoc-syntax">)
912                     }
913                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r.dirty</span><span class="jsdoc-syntax">){
914                         </span><span class="jsdoc-var">alt.push</span><span class="jsdoc-syntax">(  </span><span class="jsdoc-string">&quot; x-grid-dirty-row&quot;</span><span class="jsdoc-syntax">);
915                     }
916                     </span><span class="jsdoc-var">rp.cells </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">lcb</span><span class="jsdoc-syntax">;
917                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.getRowClass</span><span class="jsdoc-syntax">){
918                         </span><span class="jsdoc-var">alt.push</span><span class="jsdoc-syntax">(</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">));
919                     }
920                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hasListener</span><span class="jsdoc-syntax">) {
921                         </span><span class="jsdoc-var">rowcfg </span><span class="jsdoc-syntax">= {
922
923                             </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">,
924                             </span><span class="jsdoc-var">rowIndex </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">,
925                             </span><span class="jsdoc-var">rowClass </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''
926                         </span><span class="jsdoc-syntax">};
927                         </span><span class="jsdoc-var">this.grid.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'rowclass'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rowcfg</span><span class="jsdoc-syntax">);
928                         </span><span class="jsdoc-var">alt.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rowcfg.rowClass</span><span class="jsdoc-syntax">);
929                     }
930                     </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">);
931                     </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">);
932                     </span><span class="jsdoc-var">rp.cells </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cb</span><span class="jsdoc-syntax">;
933                     </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">);
934                 }
935                 </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">];
936             } :
937             </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">){
938                 </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">;
939                 </span><span class="jsdoc-comment">// buffers
940                 </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">;
941                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hasListener </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.grid.hasListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'rowclass'</span><span class="jsdoc-syntax">);
942
943                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rowcfg </span><span class="jsdoc-syntax">= {};
944                 </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">++){
945                     </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">);
946                     </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">++){
947                         </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">];
948                         </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">;
949                         </span><span class="jsdoc-var">p.id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">c.id</span><span class="jsdoc-syntax">;
950                         </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">;
951                         </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">);
952                         </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">) {
953                             </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">;
954                         }
955                         </span><span class="jsdoc-comment">//Roo.log(c);
956                          </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c.has_editor</span><span class="jsdoc-syntax">){
957                             </span><span class="jsdoc-var">p.css </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">' x-grid-editable-cell'</span><span class="jsdoc-syntax">;
958                         }
959                         </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">){
960                             </span><span class="jsdoc-var">p.css </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">' x-grid-dirty-cell'
961                         </span><span class="jsdoc-syntax">}
962
963                         </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">);
964                         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">c.locked</span><span class="jsdoc-syntax">){
965                             </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">;
966                         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
967                             </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">;
968                         }
969                     }
970                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">alt </span><span class="jsdoc-syntax">= [];
971                     </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)){
972                         </span><span class="jsdoc-var">alt.push</span><span class="jsdoc-syntax">( </span><span class="jsdoc-string">&quot;x-grid-row-alt&quot;</span><span class="jsdoc-syntax">);
973                     }
974                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r.dirty</span><span class="jsdoc-syntax">){
975                         </span><span class="jsdoc-var">alt.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot; x-grid-dirty-row&quot;</span><span class="jsdoc-syntax">);
976                     }
977                     </span><span class="jsdoc-var">rp.cells </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">lcb</span><span class="jsdoc-syntax">;
978                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.getRowClass</span><span class="jsdoc-syntax">){
979                         </span><span class="jsdoc-var">alt.push</span><span class="jsdoc-syntax">( </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">));
980                     }
981                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hasListener</span><span class="jsdoc-syntax">) {
982                         </span><span class="jsdoc-var">rowcfg </span><span class="jsdoc-syntax">= {
983
984                             </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">,
985                             </span><span class="jsdoc-var">rowIndex </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">,
986                             </span><span class="jsdoc-var">rowClass </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''
987                         </span><span class="jsdoc-syntax">};
988                         </span><span class="jsdoc-var">this.grid.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'rowclass'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rowcfg</span><span class="jsdoc-syntax">);
989                         </span><span class="jsdoc-var">alt.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rowcfg.rowClass</span><span class="jsdoc-syntax">);
990                     }
991
992                     </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">);
993                     </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">);
994                     </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">);
995                     </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">);
996                     </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">);
997                 }
998                 </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">)];
999             },
1000
1001     </span><span class="jsdoc-var">renderBody </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1002         </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">();
1003         </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">;
1004         </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]})];
1005     },
1006
1007     </span><span class="jsdoc-comment">/**
1008      * Refreshes the grid
1009      * @param {Boolean} headersToo
1010      */
1011     </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">){
1012         </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">);
1013         </span><span class="jsdoc-var">this.grid.stopEditing</span><span class="jsdoc-syntax">();
1014         </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">();
1015         </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]);
1016         </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]);
1017         </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">){
1018             </span><span class="jsdoc-var">this.updateHeaders</span><span class="jsdoc-syntax">();
1019             </span><span class="jsdoc-var">this.updateColumns</span><span class="jsdoc-syntax">();
1020             </span><span class="jsdoc-var">this.updateSplitters</span><span class="jsdoc-syntax">();
1021             </span><span class="jsdoc-var">this.updateHeaderSortState</span><span class="jsdoc-syntax">();
1022         }
1023         </span><span class="jsdoc-var">this.syncRowHeights</span><span class="jsdoc-syntax">();
1024         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
1025         </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">);
1026     },
1027
1028     </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">){
1029         </span><span class="jsdoc-var">this.indexMap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
1030         </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">();
1031         </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
1032         </span><span class="jsdoc-var">this.restoreScroll</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">);
1033         </span><span class="jsdoc-var">this.afterMove</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">newIndex</span><span class="jsdoc-syntax">);
1034     },
1035
1036     </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">){
1037         </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">){
1038             </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">);
1039         }
1040         </span><span class="jsdoc-comment">// if multisort - fix sortOrder, and reload..
1041         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.dataSource.multiSort</span><span class="jsdoc-syntax">) {
1042             </span><span class="jsdoc-comment">// the we can call sort again..
1043             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.grid.dataSource</span><span class="jsdoc-syntax">;
1044             </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">;
1045             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">so </span><span class="jsdoc-syntax">= [];
1046             </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">cm.config.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++ ) {
1047
1048                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">((</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dm.sortToggle</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">.dataIndex</span><span class="jsdoc-syntax">]) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">)) {
1049                     </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// dont' bother, it's not in sort list or being set.
1050                 </span><span class="jsdoc-syntax">}
1051
1052                 </span><span class="jsdoc-var">so.push</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">.dataIndex</span><span class="jsdoc-syntax">);
1053             };
1054             </span><span class="jsdoc-var">dm.sortOrder </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">so</span><span class="jsdoc-syntax">;
1055             </span><span class="jsdoc-var">dm.load</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dm.lastOptions</span><span class="jsdoc-syntax">);
1056
1057
1058         }
1059
1060     },
1061
1062     </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">){
1063         </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">);
1064         </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
1065             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1066         }
1067         </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">;
1068         </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">);
1069         </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">);
1070
1071         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= {
1072             </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">,
1073             </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">),
1074             </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;
1075         </span><span class="jsdoc-syntax">};
1076         </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">);
1077         </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">);
1078         </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">) {
1079             </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">;
1080         }
1081         </span><span class="jsdoc-var">cellText.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">;
1082         </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">;
1083         </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">);
1084     },
1085
1086     </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">){
1087         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">maxWidth </span><span class="jsdoc-syntax">= 0;
1088         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.autoSizeHeaders</span><span class="jsdoc-syntax">){
1089             </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">);
1090             </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">);
1091         }
1092         </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">;
1093         </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">)){
1094             </span><span class="jsdoc-var">tb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getLockedTable</span><span class="jsdoc-syntax">();
1095             </span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">;
1096         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
1097             </span><span class="jsdoc-var">tb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getBodyTable</span><span class="jsdoc-syntax">();
1098             </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">();
1099         }
1100         </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">){
1101             </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">;
1102             </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">);
1103             </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">++){
1104                 </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">;
1105                 </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">);
1106             }
1107         }
1108         </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;
1109     },
1110     </span><span class="jsdoc-comment">/**
1111      * Autofit a column to its content.
1112      * @param {Number} colIndex
1113      * @param {Boolean} forceMinSize true to force the column to go smaller if possible
1114      */
1115      </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">){
1116          </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">)){
1117              </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// can't calc a hidden column
1118          </span><span class="jsdoc-syntax">}
1119         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">forceMinSize</span><span class="jsdoc-syntax">){
1120             </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">);
1121             </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">);
1122            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.autoSizeHeaders</span><span class="jsdoc-syntax">){
1123                </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">);
1124            }
1125         }
1126         </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">);
1127         </span><span class="jsdoc-var">this.cm.setColumnWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">,
1128             </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">);
1129         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">suppressEvent</span><span class="jsdoc-syntax">){
1130             </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">);
1131         }
1132     },
1133
1134     </span><span class="jsdoc-comment">/**
1135      * Autofits all columns to their content and then expands to fit any extra space in the grid
1136      */
1137      </span><span class="jsdoc-var">autoSizeColumns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1138         </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">;
1139         </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">();
1140         </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">++){
1141             </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">);
1142         }
1143         </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">){
1144             </span><span class="jsdoc-var">this.fitColumns</span><span class="jsdoc-syntax">();
1145         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
1146             </span><span class="jsdoc-var">this.updateColumns</span><span class="jsdoc-syntax">();
1147             </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
1148         }
1149     },
1150
1151     </span><span class="jsdoc-comment">/**
1152      * Autofits all columns to the grid's width proportionate with their current size
1153      * @param {Boolean} reserveScrollSpace Reserve space for a scrollbar
1154      */
1155     </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">){
1156         </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">;
1157         </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">();
1158         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cols </span><span class="jsdoc-syntax">= [];
1159         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">width </span><span class="jsdoc-syntax">= 0;
1160         </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">;
1161         </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">++){
1162             </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">)){
1163                 </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">);
1164                 </span><span class="jsdoc-var">cols.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">);
1165                 </span><span class="jsdoc-var">cols.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">);
1166                 </span><span class="jsdoc-var">width </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">;
1167             }
1168         }
1169         </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">());
1170         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">reserveScrollSpace</span><span class="jsdoc-syntax">){
1171             </span><span class="jsdoc-var">avail </span><span class="jsdoc-syntax">-= 17;
1172         }
1173         </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">;
1174         </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cols.length</span><span class="jsdoc-syntax">){
1175             </span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cols.pop</span><span class="jsdoc-syntax">();
1176             </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cols.pop</span><span class="jsdoc-syntax">();
1177             </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">);
1178         }
1179         </span><span class="jsdoc-var">this.updateColumns</span><span class="jsdoc-syntax">();
1180         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
1181     },
1182
1183     </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">){
1184         </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">);
1185         </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">);
1186     },
1187
1188     </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">){
1189         </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">);
1190         </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">);
1191     },
1192
1193     </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">){
1194         </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">);
1195         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">){
1196             </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">);
1197         }
1198     },
1199
1200     </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">){
1201         </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">);
1202         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">){
1203             </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">);
1204         }
1205     },
1206
1207     </span><span class="jsdoc-var">updateHeaderSortState </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1208
1209         </span><span class="jsdoc-comment">// sort state can be single { field: xxx, direction : yyy}
1210         // or   { xxx=&gt;ASC , yyy : DESC ..... }
1211
1212         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">mstate </span><span class="jsdoc-syntax">= {};
1213         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.ds.multiSort</span><span class="jsdoc-syntax">) {
1214             </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">();
1215             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">state</span><span class="jsdoc-syntax">){
1216                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1217             }
1218             </span><span class="jsdoc-var">mstate</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">state.field</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">state.direction</span><span class="jsdoc-syntax">;
1219             </span><span class="jsdoc-comment">// FIXME... - this is not used here.. but might be elsewhere..
1220             </span><span class="jsdoc-var">this.sortState </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">state</span><span class="jsdoc-syntax">;
1221
1222         } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
1223             </span><span class="jsdoc-var">mstate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.ds.sortToggle</span><span class="jsdoc-syntax">;
1224         }
1225         </span><span class="jsdoc-comment">//remove existing sort classes..
1226
1227         </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">;
1228         </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">);
1229
1230         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">f </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">mstate</span><span class="jsdoc-syntax">) {
1231
1232             </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">f</span><span class="jsdoc-syntax">);
1233
1234             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sortColumn </span><span class="jsdoc-syntax">!= -1){
1235                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sortDir </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">mstate</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">f</span><span class="jsdoc-syntax">];
1236                 </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]);
1237             }
1238         }
1239
1240
1241
1242     },
1243
1244
1245     </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">,</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
1246
1247         </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;header click&quot;</span><span class="jsdoc-syntax">);
1248
1249         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isTouch</span><span class="jsdoc-syntax">) {
1250             </span><span class="jsdoc-comment">// touch events on header are handled by context
1251             </span><span class="jsdoc-var">this.handleHdCtx</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">);
1252             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1253         }
1254
1255
1256         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.headersDisabled</span><span class="jsdoc-syntax">){
1257             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1258         }
1259         </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">;
1260         </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">)){
1261             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1262         }
1263         </span><span class="jsdoc-var">g.stopEditing</span><span class="jsdoc-syntax">();
1264
1265         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dm.multiSort</span><span class="jsdoc-syntax">) {
1266             </span><span class="jsdoc-comment">// update the sortOrder
1267             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">so </span><span class="jsdoc-syntax">= [];
1268             </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">cm.config.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++ ) {
1269
1270                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">((</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dm.sortToggle</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">.dataIndex</span><span class="jsdoc-syntax">]) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) &amp;&amp; (</span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">)) {
1271                     </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// dont' bother, it's not in sort list or being set.
1272                 </span><span class="jsdoc-syntax">}
1273
1274                 </span><span class="jsdoc-var">so.push</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">.dataIndex</span><span class="jsdoc-syntax">);
1275             };
1276             </span><span class="jsdoc-var">dm.sortOrder </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">so</span><span class="jsdoc-syntax">;
1277         }
1278
1279
1280         </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">));
1281     },
1282
1283
1284     </span><span class="jsdoc-var">destroy </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1285         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.colMenu</span><span class="jsdoc-syntax">){
1286             </span><span class="jsdoc-var">this.colMenu.removeAll</span><span class="jsdoc-syntax">();
1287             </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">);
1288             </span><span class="jsdoc-var">this.colMenu.getEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.remove</span><span class="jsdoc-syntax">();
1289             </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.colMenu</span><span class="jsdoc-syntax">;
1290         }
1291         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hmenu</span><span class="jsdoc-syntax">){
1292             </span><span class="jsdoc-var">this.hmenu.removeAll</span><span class="jsdoc-syntax">();
1293             </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">);
1294             </span><span class="jsdoc-var">this.hmenu.getEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.remove</span><span class="jsdoc-syntax">();
1295             </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.hmenu</span><span class="jsdoc-syntax">;
1296         }
1297         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.enableColumnMove</span><span class="jsdoc-syntax">){
1298             </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">];
1299             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dds</span><span class="jsdoc-syntax">){
1300                 </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">){
1301                     </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">){
1302                         </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">;
1303                         </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">();
1304                         </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">();
1305                     } </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">){
1306                         </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">();
1307                         </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">();
1308                         </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">();
1309                     }
1310                     </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">]){
1311                         </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">];
1312                     }
1313                 }
1314                 </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">];
1315             }
1316         }
1317         </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">);
1318         </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">);
1319         </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">);
1320     },
1321
1322     </span><span class="jsdoc-var">handleLockChange </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1323         </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
1324     },
1325
1326     </span><span class="jsdoc-var">onDenyColumnLock </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1327
1328     },
1329
1330     </span><span class="jsdoc-var">onDenyColumnHide </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1331
1332     },
1333
1334     </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">){
1335         </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">;
1336         </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">;
1337         </span><span class="jsdoc-keyword">switch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item.id</span><span class="jsdoc-syntax">){
1338             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">&quot;asc&quot;</span><span class="jsdoc-syntax">:
1339                 </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">);
1340                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
1341             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">&quot;desc&quot;</span><span class="jsdoc-syntax">:
1342                 </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">);
1343                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
1344             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">&quot;lock&quot;</span><span class="jsdoc-syntax">:
1345                 </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">();
1346                 </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){
1347                     </span><span class="jsdoc-var">this.onDenyColumnLock</span><span class="jsdoc-syntax">();
1348                     </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1349                 }
1350                 </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">){
1351                     </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">);
1352                     </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">);
1353                     </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">);
1354                 }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
1355                     </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">);
1356                 }
1357             </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
1358             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">&quot;unlock&quot;</span><span class="jsdoc-syntax">:
1359                 </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">();
1360                 </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">){
1361                     </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">);
1362                     </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);
1363                     </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);
1364                 }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
1365                     </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">);
1366                 }
1367             </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
1368             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'wider'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-comment">// used to expand cols on touch..
1369             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'narrow'</span><span class="jsdoc-syntax">:
1370                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cw </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getColumnWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
1371                 </span><span class="jsdoc-var">cw </span><span class="jsdoc-syntax">+= (</span><span class="jsdoc-var">item.id </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'wider' </span><span class="jsdoc-syntax">? 1 : -1) * 50;
1372                 </span><span class="jsdoc-var">cw </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">cw</span><span class="jsdoc-syntax">);
1373                 </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">cw</span><span class="jsdoc-syntax">,4000);
1374                 </span><span class="jsdoc-var">cm.setColumnWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cw</span><span class="jsdoc-syntax">);
1375                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
1376
1377             </span><span class="jsdoc-keyword">default</span><span class="jsdoc-syntax">:
1378                 </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));
1379                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">!= -1){
1380                     </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){
1381                         </span><span class="jsdoc-var">this.onDenyColumnHide</span><span class="jsdoc-syntax">();
1382                         </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
1383                     }
1384                     </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">);
1385                 }
1386         }
1387         </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
1388     },
1389
1390     </span><span class="jsdoc-var">beforeColMenuShow </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1391         </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">();
1392         </span><span class="jsdoc-var">this.colMenu.removeAll</span><span class="jsdoc-syntax">();
1393         </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">++){
1394             </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">({
1395                 </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">),
1396                 </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">),
1397                 </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">),
1398                 </span><span class="jsdoc-var">hideOnClick</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">false
1399             </span><span class="jsdoc-syntax">}));
1400         }
1401     },
1402
1403     </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">){
1404         </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
1405         </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">);
1406         </span><span class="jsdoc-var">this.hdCtxIndex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">;
1407         </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">;
1408         </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">));
1409         </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">));
1410         </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">){
1411             </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">));
1412             </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">));
1413         }
1414         </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">);
1415     },
1416
1417     </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">){
1418         </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">());
1419         </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">){
1420             </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">))){
1421                </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">);
1422             }
1423         }
1424     },
1425
1426     </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">){
1427         </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">());
1428         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hd</span><span class="jsdoc-syntax">){
1429             </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">);
1430         }
1431     },
1432
1433     </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">){
1434         </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">);
1435         </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">)){
1436             </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">);
1437             </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
1438         }
1439     },
1440
1441     </span><span class="jsdoc-var">render </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1442
1443         </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">;
1444         </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">();
1445
1446         </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">){
1447             </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">);
1448         }
1449         </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">();
1450         </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">});
1451         </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">({
1452             </span><span class="jsdoc-var">lockedBody</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">body</span><span class="jsdoc-syntax">,
1453             </span><span class="jsdoc-var">body</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">body</span><span class="jsdoc-syntax">,
1454             </span><span class="jsdoc-var">lockedHeader</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">[0],
1455             </span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">[1]
1456         });
1457
1458         </span><span class="jsdoc-comment">//this.updateColumns();
1459
1460         </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">;
1461
1462         </span><span class="jsdoc-var">this.initElements</span><span class="jsdoc-syntax">();
1463
1464         </span><span class="jsdoc-comment">// a kludge to fix the random scolling effect in webkit
1465         </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">() {
1466             </span><span class="jsdoc-var">this.el.dom.scrollTop</span><span class="jsdoc-syntax">=0; </span><span class="jsdoc-comment">// hopefully not recursive..
1467         </span><span class="jsdoc-syntax">},</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
1468
1469         </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">);
1470         </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">);
1471         </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">);
1472
1473         </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">);
1474         </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">);
1475         </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">,
1476                 {</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">});
1477
1478         </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">);
1479         </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">);
1480         </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">,
1481                 {</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">});
1482
1483         </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">){
1484             </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">);
1485         }
1486
1487         </span><span class="jsdoc-var">this.updateSplitters</span><span class="jsdoc-syntax">();
1488
1489         </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">){
1490             </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">);
1491             </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">);
1492         }
1493
1494         </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">){
1495             </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">});
1496             </span><span class="jsdoc-var">this.hmenu.add</span><span class="jsdoc-syntax">(
1497                 {</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">},
1498                 {</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">}
1499             );
1500             </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">){
1501                 </span><span class="jsdoc-var">this.hmenu.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'-'</span><span class="jsdoc-syntax">,
1502                     {</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">},
1503                     {</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">}
1504                 );
1505             }
1506             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isTouch</span><span class="jsdoc-syntax">) {
1507                  </span><span class="jsdoc-var">this.hmenu.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'-'</span><span class="jsdoc-syntax">,
1508                     {</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;wider&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.columnsWiderText</span><span class="jsdoc-syntax">},
1509                     {</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;narrow&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.columnsNarrowText </span><span class="jsdoc-syntax">}
1510                 );
1511
1512
1513             }
1514
1515             </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">){
1516
1517                 </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">});
1518                 </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">);
1519                 </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">);
1520
1521                 </span><span class="jsdoc-var">this.hmenu.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'-'</span><span class="jsdoc-syntax">,
1522                     {</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">}
1523                 );
1524             }
1525             </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">);
1526
1527             </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">);
1528         }
1529
1530         </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">){
1531             </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">, {
1532                 </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'
1533             </span><span class="jsdoc-syntax">});
1534
1535         }
1536
1537         </span><span class="jsdoc-comment">/*
1538         for(var i = 0; i &lt; colCount; i++){
1539             if(cm.isHidden(i)){
1540                 this.hideColumn(i);
1541             }
1542             if(cm.config[i].align){
1543                 this.css.updateRule(this.colSelector + i, &quot;textAlign&quot;, cm.config[i].align);
1544                 this.css.updateRule(this.hdSelector + i, &quot;textAlign&quot;, cm.config[i].align);
1545             }
1546         }*/
1547
1548         </span><span class="jsdoc-var">this.updateHeaderSortState</span><span class="jsdoc-syntax">();
1549
1550         </span><span class="jsdoc-var">this.beforeInitialResize</span><span class="jsdoc-syntax">();
1551         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
1552
1553         </span><span class="jsdoc-comment">// two part rendering gives faster view to the user
1554         </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">);
1555     },
1556
1557     </span><span class="jsdoc-var">renderPhase2 </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1558         </span><span class="jsdoc-comment">// render the rows now
1559         </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">();
1560         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.autoSizeColumns</span><span class="jsdoc-syntax">){
1561             </span><span class="jsdoc-var">this.autoSizeColumns</span><span class="jsdoc-syntax">();
1562         }
1563     },
1564
1565     </span><span class="jsdoc-var">beforeInitialResize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1566
1567     },
1568
1569     </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">){
1570         </span><span class="jsdoc-var">this.userResized </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
1571         </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">;
1572         </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">);
1573         </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">);
1574         </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">);
1575         </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">);
1576         </span><span class="jsdoc-var">this.updateSplitters</span><span class="jsdoc-syntax">();
1577         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
1578         </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">);
1579     },
1580
1581     </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">){
1582         </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){
1583             </span><span class="jsdoc-var">startIndex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">startIndex </span><span class="jsdoc-syntax">|| 0;
1584             </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">;
1585             </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">;
1586             </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;
1587             </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">);
1588             </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">++){
1589                 </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">];
1590                 </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">);
1591                 </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">;
1592             }
1593         }
1594     },
1595
1596     </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">){
1597         </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">;
1598         </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">;
1599         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">scrollOffset </span><span class="jsdoc-syntax">= 16;
1600         </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">,
1601                 </span><span class="jsdoc-var">expandCol </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">g.autoExpandColumn</span><span class="jsdoc-syntax">,
1602                 </span><span class="jsdoc-var">gv </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
1603         </span><span class="jsdoc-comment">//c.beginMeasure();
1604
1605         </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?
1606             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">initialRender</span><span class="jsdoc-syntax">){
1607                 </span><span class="jsdoc-var">this.lockedWrap.show</span><span class="jsdoc-syntax">();
1608                 </span><span class="jsdoc-var">this.mainWrap.show</span><span class="jsdoc-syntax">();
1609             }
1610             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1611         }
1612
1613         </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);
1614
1615         </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">();
1616         </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">();
1617
1618         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">auto</span><span class="jsdoc-syntax">){
1619             </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">();
1620             </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">);
1621             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">g.maxHeight</span><span class="jsdoc-syntax">){
1622                 </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">);
1623             }
1624             </span><span class="jsdoc-var">c.setHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">newHeight</span><span class="jsdoc-syntax">);
1625         }
1626
1627         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">g.autoWidth</span><span class="jsdoc-syntax">){
1628             </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">));
1629         }
1630
1631         </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">;
1632
1633         </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">);
1634
1635         </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">);
1636
1637         </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">);
1638         </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">);
1639
1640         </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">();
1641         </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">;
1642         </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">);
1643
1644         </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">);
1645
1646         </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">();
1647
1648         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cm.getLockedCount</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-var">cm.config.length</span><span class="jsdoc-syntax">){
1649             </span><span class="jsdoc-var">bt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getLockedTable</span><span class="jsdoc-syntax">();
1650         }
1651
1652         </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">?
1653                       </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;
1654
1655         </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">;
1656         </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">;
1657         </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">;
1658
1659         </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">);
1660
1661         </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">;
1662         </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">;
1663
1664         </span><span class="jsdoc-var">setTimeout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1665             </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">;
1666             </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">,
1667                 </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">s.dom.clientHeight</span><span class="jsdoc-syntax">;
1668
1669             </span><span class="jsdoc-var">lw.setTop</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">);
1670             </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">);
1671
1672             </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">);
1673             </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">);
1674
1675             </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">);
1676             </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">);
1677
1678             </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">){
1679                 </span><span class="jsdoc-comment">// high speed resize without full column calculation
1680
1681                 </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">);
1682                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ci </span><span class="jsdoc-syntax">&lt; 0) {
1683                     </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">);
1684                 }
1685                 </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.
1686                 </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">);
1687                 </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">);
1688                 </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">);
1689                 </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">);
1690                 </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">){
1691                     </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">);
1692                     </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">);
1693                     </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">);
1694                     </span><span class="jsdoc-var">gv.updateSplitters</span><span class="jsdoc-syntax">();
1695                     </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">);
1696                 }
1697             }
1698
1699             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">initialRender</span><span class="jsdoc-syntax">){
1700                 </span><span class="jsdoc-var">lw.show</span><span class="jsdoc-syntax">();
1701                 </span><span class="jsdoc-var">mw.show</span><span class="jsdoc-syntax">();
1702             }
1703             </span><span class="jsdoc-comment">//c.endMeasure();
1704         </span><span class="jsdoc-syntax">}, 10);
1705     },
1706
1707     </span><span class="jsdoc-var">onWindowResize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1708         </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">){
1709             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1710         }
1711         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
1712     },
1713
1714     </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">){
1715         </span><span class="jsdoc-keyword">return null</span><span class="jsdoc-syntax">;
1716     },
1717
1718     </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">,
1719     </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">,
1720     </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">,
1721     </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">,
1722     </span><span class="jsdoc-var">columnsText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Columns&quot;</span><span class="jsdoc-syntax">,
1723
1724     </span><span class="jsdoc-var">columnsWiderText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Wider&quot;</span><span class="jsdoc-syntax">,
1725     </span><span class="jsdoc-var">columnsNarrowText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Thinner&quot;
1726 </span><span class="jsdoc-syntax">});
1727
1728
1729 </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">){
1730     </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">);
1731     </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">);
1732 };
1733
1734 </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">, {
1735     </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">){
1736
1737     },
1738
1739     </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">){
1740         </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">);
1741     }
1742 });
1743 </span></code></body></html>