docs/default.css
[roojs1] / docs / symbols / src / Roo_grid_GridView.js.html
1 <html><head><title>../roojs1/Roo/grid/GridView.js</title><link rel="stylesheet" type="text/css" href="../../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
2  * Based on:
3  * Ext JS Library 1.1.1
4  * Copyright(c) 2006-2007, Ext JS, LLC.
5  *
6  * Originally Released Under LGPL - original licence link has changed is not relivant.
7  *
8  * Fork - LGPL
9  * &lt;script type=&quot;text/javascript&quot;&gt;
10  */
11   
12 /**
13  * @class Roo.grid.GridView
14  * @extends Roo.util.Observable
15  *
16  * @constructor
17  * @param {Object} config
18  */
19 </span><span class="jsdoc-var">Roo.grid.GridView </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
20     </span><span class="jsdoc-var">Roo.grid.GridView.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
21     </span><span class="jsdoc-var">this.el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
22
23     </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
24 };
25
26 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.grid.GridView</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.grid.AbstractGridView</span><span class="jsdoc-syntax">, {
27
28     </span><span class="jsdoc-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.title </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cm.getColumnTooltip</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">;
501             </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">;
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">)) </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
662                 </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
663                 </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">){
664                     </span><span class="jsdoc-var">pos </span><span class="jsdoc-syntax">= 0;
665                     </span><span class="jsdoc-var">locked </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
666                 }
667                 </span><span class="jsdoc-var">pos </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">;
668                 </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">;
669             }
670         }
671     },
672
673     </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">){
674         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hidden</span><span class="jsdoc-syntax">){
675             </span><span class="jsdoc-var">this.hideColumn</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">);
676         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
677             </span><span class="jsdoc-var">this.unhideColumn</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">);
678         }
679     },
680
681     </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">){
682         </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">);
683         </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">);
684         </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">);
685         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isSafari</span><span class="jsdoc-syntax">){
686             </span><span class="jsdoc-var">this.updateHeaders</span><span class="jsdoc-syntax">();
687         }
688         </span><span class="jsdoc-var">this.updateSplitters</span><span class="jsdoc-syntax">();
689         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
690     },
691
692     </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">){
693         </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">);
694         </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">);
695         </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">);
696
697         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isSafari</span><span class="jsdoc-syntax">){
698             </span><span class="jsdoc-var">this.updateHeaders</span><span class="jsdoc-syntax">();
699         }
700         </span><span class="jsdoc-var">this.updateSplitters</span><span class="jsdoc-syntax">();
701         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
702     },
703
704     </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">){
705         </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){
706             </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">();
707         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
708             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">isUpdate</span><span class="jsdoc-syntax">){
709                 </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">);
710             }
711             </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">();
712             </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">);
713             </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">);
714             </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">);
715             </span><span class="jsdoc-var">this.restoreScroll</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">);
716             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">isUpdate</span><span class="jsdoc-syntax">){
717                 </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">);
718                 </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">);
719                 </span><span class="jsdoc-var">this.stripeRows</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">firstRow</span><span class="jsdoc-syntax">);
720                 </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
721             }
722         }
723     },
724
725     </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">){
726         </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];
727         </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">){
728             </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">];
729         }
730         </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">);
731         </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">;
732         </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">;
733         </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">++){
734             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">before</span><span class="jsdoc-syntax">){
735                 </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">);
736             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
737                 </span><span class="jsdoc-var">tbody.appendChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rows</span><span class="jsdoc-syntax">[0]);
738             }
739         }
740         </span><span class="jsdoc-var">b.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">;
741         </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
742     },
743
744     </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">){
745         </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){
746             </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">);
747             </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">);
748             </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">);
749             </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">);
750         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
751             </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">);
752             </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">();
753             </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">;
754             </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">;
755             </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">++){
756                 </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">]);
757             }
758             </span><span class="jsdoc-var">this.stripeRows</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">firstRow</span><span class="jsdoc-syntax">);
759             </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">);
760         }
761     },
762
763     </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">){
764         </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">();
765         </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">();
766         </span><span class="jsdoc-var">this.restoreScroll</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">);
767     },
768
769     </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">){
770         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">noRefresh</span><span class="jsdoc-syntax">){
771            </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">();
772         }
773         </span><span class="jsdoc-var">this.updateHeaderSortState</span><span class="jsdoc-syntax">();
774     },
775
776     </span><span class="jsdoc-var">getScrollState </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
777         
778         </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">;
779         </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">};
780     },
781
782     </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">){
783         </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){
784             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
785         }
786         </span><span class="jsdoc-var">startRow </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">startRow </span><span class="jsdoc-syntax">|| 0;
787         </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">;
788         </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">;
789         </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">;
790         </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">++){
791             </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">];
792             </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);
793             </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;
794             </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">){
795                 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
796             }
797             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isAlt</span><span class="jsdoc-syntax">){
798                 </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">;
799             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
800                 </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">);
801             }
802             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">lrow</span><span class="jsdoc-syntax">){
803                 </span><span class="jsdoc-var">lrow.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">row.className</span><span class="jsdoc-syntax">;
804             }
805         }
806     },
807
808     </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">){
809         </span><span class="jsdoc-comment">//Roo.log('GridView.restoreScroll');
810         </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">;
811         </span><span class="jsdoc-var">sb.scrollLeft </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">state.left</span><span class="jsdoc-syntax">;
812         </span><span class="jsdoc-var">sb.scrollTop </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">state.top</span><span class="jsdoc-syntax">;
813         </span><span class="jsdoc-var">this.syncScroll</span><span class="jsdoc-syntax">();
814     },
815
816     </span><span class="jsdoc-var">syncScroll </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
817         </span><span class="jsdoc-comment">//Roo.log('GridView.syncScroll');
818         </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">;
819         </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">;
820         </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">;
821         </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">;
822         </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">;
823         </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">;
824     },
825
826     </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">){
827         </span><span class="jsdoc-var">this.syncScroll</span><span class="jsdoc-syntax">();
828         </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">;
829         </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">);
830         </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
831     },
832
833     </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">){
834         </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">();
835         </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;
836         </span><span class="jsdoc-comment">// set this here to prevent jumpy scrolling on large tables
837         </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">;
838         </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
839     },
840
841     </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">){
842         </span><span class="jsdoc-comment">// pull in all the crap needed to render rows
843         </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">;
844         </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">();
845
846         </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){
847             </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">];
848         }
849
850         </span><span class="jsdoc-comment">// build a map for all the columns
851         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cs </span><span class="jsdoc-syntax">= [];
852         </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">++){
853             </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">);
854             </span><span class="jsdoc-var">cs</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = {
855                 </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">,
856                 </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">),
857                 </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">),
858                 </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">)
859             };
860         }
861
862         </span><span class="jsdoc-var">startRow </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">startRow </span><span class="jsdoc-syntax">|| 0;
863         </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">;
864
865         </span><span class="jsdoc-comment">// records to render
866         </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">);
867
868         </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">);
869     },
870
871     </span><span class="jsdoc-comment">// As much as I hate to duplicate code, this was branched because FireFox really hates
872     // [].join(&quot;&quot;) on strings. The performance difference was substantial enough to
873     // branch this function
874     </span><span class="jsdoc-var">doRender </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.isGecko </span><span class="jsdoc-syntax">?
875             </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">){
876                 </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">;
877                 </span><span class="jsdoc-comment">// buffers
878                 </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">;
879                 
880                 </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">);
881                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rowcfg </span><span class="jsdoc-syntax">= {};
882                 </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">++){
883                     </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">);
884                     </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">++){
885                         </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">];
886                         </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">;
887                         </span><span class="jsdoc-var">p.id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">c.id</span><span class="jsdoc-syntax">;
888                         </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">;
889                         </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">);
890                         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p.value </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">p.value </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">) </span><span class="jsdoc-var">p.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;&amp;#160;&quot;</span><span class="jsdoc-syntax">;
891                         </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">){
892                             </span><span class="jsdoc-var">p.css </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">p.css </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">' x-grid-dirty-cell' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'x-grid-dirty-cell'</span><span class="jsdoc-syntax">;
893                         }
894                         </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">);
895                         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">c.locked</span><span class="jsdoc-syntax">){
896                             </span><span class="jsdoc-var">cb</span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">markup</span><span class="jsdoc-syntax">;
897                         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
898                             </span><span class="jsdoc-var">lcb</span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">markup</span><span class="jsdoc-syntax">;
899                         }
900                     }
901                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">alt </span><span class="jsdoc-syntax">= [];
902                     </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)){
903                         </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">)
904                     }
905                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r.dirty</span><span class="jsdoc-syntax">){
906                         </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">);
907                     }
908                     </span><span class="jsdoc-var">rp.cells </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">lcb</span><span class="jsdoc-syntax">;
909                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.getRowClass</span><span class="jsdoc-syntax">){
910                         </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">));
911                     }
912                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hasListener</span><span class="jsdoc-syntax">) {
913                         </span><span class="jsdoc-var">rowcfg </span><span class="jsdoc-syntax">= {
914                              
915                             </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">,
916                             </span><span class="jsdoc-var">rowIndex </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">,
917                             </span><span class="jsdoc-var">rowClass </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''
918                         </span><span class="jsdoc-syntax">};
919                         </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">);
920                         </span><span class="jsdoc-var">alt.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rowcfg.rowClass</span><span class="jsdoc-syntax">);
921                     }
922                     </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">);
923                     </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">);
924                     </span><span class="jsdoc-var">rp.cells </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cb</span><span class="jsdoc-syntax">;
925                     </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">);
926                 }
927                 </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">];
928             } :
929             </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">){
930                 </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">;
931                 </span><span class="jsdoc-comment">// buffers
932                 </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">;
933                 </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">);
934  
935                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rowcfg </span><span class="jsdoc-syntax">= {};
936                 </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">++){
937                     </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">);
938                     </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">++){
939                         </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">];
940                         </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">;
941                         </span><span class="jsdoc-var">p.id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">c.id</span><span class="jsdoc-syntax">;
942                         </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">;
943                         </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">);
944                         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p.value </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">p.value </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">) </span><span class="jsdoc-var">p.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;&amp;#160;&quot;</span><span class="jsdoc-syntax">;
945                         </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">){
946                             </span><span class="jsdoc-var">p.css </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">p.css </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">' x-grid-dirty-cell' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'x-grid-dirty-cell'</span><span class="jsdoc-syntax">;
947                         }
948                         
949                         </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">);
950                         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">c.locked</span><span class="jsdoc-syntax">){
951                             </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">;
952                         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
953                             </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">;
954                         }
955                     }
956                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">alt </span><span class="jsdoc-syntax">= [];
957                     </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)){
958                         </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">);
959                     }
960                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r.dirty</span><span class="jsdoc-syntax">){
961                         </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">);
962                     }
963                     </span><span class="jsdoc-var">rp.cells </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">lcb</span><span class="jsdoc-syntax">;
964                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.getRowClass</span><span class="jsdoc-syntax">){
965                         </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">));
966                     }
967                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hasListener</span><span class="jsdoc-syntax">) {
968                         </span><span class="jsdoc-var">rowcfg </span><span class="jsdoc-syntax">= {
969                              
970                             </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">,
971                             </span><span class="jsdoc-var">rowIndex </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">,
972                             </span><span class="jsdoc-var">rowClass </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''
973                         </span><span class="jsdoc-syntax">};
974                         </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">);
975                         </span><span class="jsdoc-var">alt.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rowcfg.rowClass</span><span class="jsdoc-syntax">);
976                     }
977                     </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">);
978                     </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">);
979                     </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">);
980                     </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">);
981                     </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">);
982                 }
983                 </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">)];
984             },
985
986     </span><span class="jsdoc-var">renderBody </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
987         </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">();
988         </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">;
989         </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]})];
990     },
991
992     </span><span class="jsdoc-comment">/**
993      * Refreshes the grid
994      * @param {Boolean} headersToo
995      */
996     </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">){
997         </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">);
998         </span><span class="jsdoc-var">this.grid.stopEditing</span><span class="jsdoc-syntax">();
999         </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">();
1000         </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]);
1001         </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]);
1002         </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">){
1003             </span><span class="jsdoc-var">this.updateHeaders</span><span class="jsdoc-syntax">();
1004             </span><span class="jsdoc-var">this.updateColumns</span><span class="jsdoc-syntax">();
1005             </span><span class="jsdoc-var">this.updateSplitters</span><span class="jsdoc-syntax">();
1006             </span><span class="jsdoc-var">this.updateHeaderSortState</span><span class="jsdoc-syntax">();
1007         }
1008         </span><span class="jsdoc-var">this.syncRowHeights</span><span class="jsdoc-syntax">();
1009         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
1010         </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">);
1011     },
1012
1013     </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">){
1014         </span><span class="jsdoc-var">this.indexMap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
1015         </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">();
1016         </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
1017         </span><span class="jsdoc-var">this.restoreScroll</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">);
1018         </span><span class="jsdoc-var">this.afterMove</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">newIndex</span><span class="jsdoc-syntax">);
1019     },
1020
1021     </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">){
1022         </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">){
1023             </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">);
1024         }
1025         </span><span class="jsdoc-comment">// if multisort - fix sortOrder, and reload..
1026         </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">) {
1027             </span><span class="jsdoc-comment">// the we can call sort again..
1028             </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">;
1029             </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">;
1030             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">so </span><span class="jsdoc-syntax">= [];
1031             </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">++ ) {
1032                 
1033                 </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">)) {
1034                     </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.
1035                 </span><span class="jsdoc-syntax">}
1036                 
1037                 </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">);
1038             };
1039             </span><span class="jsdoc-var">dm.sortOrder </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">so</span><span class="jsdoc-syntax">;
1040             </span><span class="jsdoc-var">dm.load</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dm.lastOptions</span><span class="jsdoc-syntax">);
1041             
1042             
1043         }
1044         
1045     },
1046
1047     </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">){
1048         </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">);
1049         </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
1050             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1051         }
1052         </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">;
1053         </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">);
1054         </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">);
1055
1056         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= {
1057             </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">,
1058             </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">),
1059             </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;
1060         </span><span class="jsdoc-syntax">};
1061         </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">);
1062         </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">);
1063         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">val </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;undefined&quot; </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">val </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">) </span><span class="jsdoc-var">val </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;&amp;#160;&quot;</span><span class="jsdoc-syntax">;
1064         </span><span class="jsdoc-var">cellText.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">;
1065         </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">;
1066         </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">);
1067     },
1068
1069     </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">){
1070         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">maxWidth </span><span class="jsdoc-syntax">= 0;
1071         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.autoSizeHeaders</span><span class="jsdoc-syntax">){
1072             </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">);
1073             </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">);
1074         }
1075         </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">;
1076         </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">)){
1077             </span><span class="jsdoc-var">tb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getLockedTable</span><span class="jsdoc-syntax">();
1078             </span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">;
1079         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
1080             </span><span class="jsdoc-var">tb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getBodyTable</span><span class="jsdoc-syntax">();
1081             </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">();
1082         }
1083         </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">){
1084             </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">;
1085             </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">);
1086             </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">++){
1087                 </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">;
1088                 </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">);
1089             }
1090         }
1091         </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;
1092     },
1093     </span><span class="jsdoc-comment">/**
1094      * Autofit a column to its content.
1095      * @param {Number} colIndex
1096      * @param {Boolean} forceMinSize true to force the column to go smaller if possible
1097      */
1098      </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">){
1099          </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">)){
1100              </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// can't calc a hidden column
1101          </span><span class="jsdoc-syntax">}
1102         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">forceMinSize</span><span class="jsdoc-syntax">){
1103             </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">);
1104             </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">);
1105            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.autoSizeHeaders</span><span class="jsdoc-syntax">){
1106                </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">);
1107            }
1108         }
1109         </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">);
1110         </span><span class="jsdoc-var">this.cm.setColumnWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">,
1111             </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">);
1112         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">suppressEvent</span><span class="jsdoc-syntax">){
1113             </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">);
1114         }
1115     },
1116
1117     </span><span class="jsdoc-comment">/**
1118      * Autofits all columns to their content and then expands to fit any extra space in the grid
1119      */
1120      </span><span class="jsdoc-var">autoSizeColumns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1121         </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">;
1122         </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">();
1123         </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">++){
1124             </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">);
1125         }
1126         </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">){
1127             </span><span class="jsdoc-var">this.fitColumns</span><span class="jsdoc-syntax">();
1128         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
1129             </span><span class="jsdoc-var">this.updateColumns</span><span class="jsdoc-syntax">();
1130             </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
1131         }
1132     },
1133
1134     </span><span class="jsdoc-comment">/**
1135      * Autofits all columns to the grid's width proportionate with their current size
1136      * @param {Boolean} reserveScrollSpace Reserve space for a scrollbar
1137      */
1138     </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">){
1139         </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">;
1140         </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">();
1141         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cols </span><span class="jsdoc-syntax">= [];
1142         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">width </span><span class="jsdoc-syntax">= 0;
1143         </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">;
1144         </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">++){
1145             </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">)){
1146                 </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">);
1147                 </span><span class="jsdoc-var">cols.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">);
1148                 </span><span class="jsdoc-var">cols.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">);
1149                 </span><span class="jsdoc-var">width </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">;
1150             }
1151         }
1152         </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">());
1153         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">reserveScrollSpace</span><span class="jsdoc-syntax">){
1154             </span><span class="jsdoc-var">avail </span><span class="jsdoc-syntax">-= 17;
1155         }
1156         </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">;
1157         </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cols.length</span><span class="jsdoc-syntax">){
1158             </span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cols.pop</span><span class="jsdoc-syntax">();
1159             </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cols.pop</span><span class="jsdoc-syntax">();
1160             </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">);
1161         }
1162         </span><span class="jsdoc-var">this.updateColumns</span><span class="jsdoc-syntax">();
1163         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
1164     },
1165
1166     </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">){
1167         </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">);
1168         </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">);
1169     },
1170
1171     </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">){
1172         </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">);
1173         </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">);
1174     },
1175
1176     </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">){
1177         </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">);
1178         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">){
1179             </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">);
1180         }
1181     },
1182
1183     </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">){
1184         </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">);
1185         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">){
1186             </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">);
1187         }
1188     },
1189
1190     </span><span class="jsdoc-var">updateHeaderSortState </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1191         
1192         </span><span class="jsdoc-comment">// sort state can be single { field: xxx, direction : yyy}
1193         // or   { xxx=&gt;ASC , yyy : DESC ..... }
1194         
1195         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">mstate </span><span class="jsdoc-syntax">= {};
1196         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.ds.multiSort</span><span class="jsdoc-syntax">) { 
1197             </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">();
1198             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">state</span><span class="jsdoc-syntax">){
1199                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1200             }
1201             </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">;
1202             </span><span class="jsdoc-comment">// FIXME... - this is not used here.. but might be elsewhere..
1203             </span><span class="jsdoc-var">this.sortState </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">state</span><span class="jsdoc-syntax">;
1204             
1205         } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
1206             </span><span class="jsdoc-var">mstate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.ds.sortToggle</span><span class="jsdoc-syntax">;
1207         }
1208         </span><span class="jsdoc-comment">//remove existing sort classes..
1209         
1210         </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">;
1211         </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">);
1212         
1213         </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">) {
1214         
1215             </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">);
1216             
1217             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sortColumn </span><span class="jsdoc-syntax">!= -1){
1218                 </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">];        
1219                 </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]);
1220             }
1221         }
1222         
1223          
1224         
1225     },
1226
1227
1228     </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">){
1229         
1230         </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">);
1231         
1232         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isTouch</span><span class="jsdoc-syntax">) {
1233             </span><span class="jsdoc-comment">// touch events on header are handled by context
1234             </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">);
1235             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1236         }
1237         
1238         
1239         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.headersDisabled</span><span class="jsdoc-syntax">){
1240             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1241         }
1242         </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">;
1243         </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">)){
1244             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1245         }
1246         </span><span class="jsdoc-var">g.stopEditing</span><span class="jsdoc-syntax">();
1247         
1248         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dm.multiSort</span><span class="jsdoc-syntax">) {
1249             </span><span class="jsdoc-comment">// update the sortOrder
1250             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">so </span><span class="jsdoc-syntax">= [];
1251             </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">++ ) {
1252                 
1253                 </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">)) {
1254                     </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.
1255                 </span><span class="jsdoc-syntax">}
1256                 
1257                 </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">);
1258             };
1259             </span><span class="jsdoc-var">dm.sortOrder </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">so</span><span class="jsdoc-syntax">;
1260         }
1261         
1262         
1263         </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">));
1264     },
1265
1266
1267     </span><span class="jsdoc-var">destroy </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1268         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.colMenu</span><span class="jsdoc-syntax">){
1269             </span><span class="jsdoc-var">this.colMenu.removeAll</span><span class="jsdoc-syntax">();
1270             </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">);
1271             </span><span class="jsdoc-var">this.colMenu.getEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.remove</span><span class="jsdoc-syntax">();
1272             </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.colMenu</span><span class="jsdoc-syntax">;
1273         }
1274         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hmenu</span><span class="jsdoc-syntax">){
1275             </span><span class="jsdoc-var">this.hmenu.removeAll</span><span class="jsdoc-syntax">();
1276             </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">);
1277             </span><span class="jsdoc-var">this.hmenu.getEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.remove</span><span class="jsdoc-syntax">();
1278             </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.hmenu</span><span class="jsdoc-syntax">;
1279         }
1280         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.enableColumnMove</span><span class="jsdoc-syntax">){
1281             </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">];
1282             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dds</span><span class="jsdoc-syntax">){
1283                 </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">){
1284                     </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">){
1285                         </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">;
1286                         </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">();
1287                         </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">();
1288                     } </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">){
1289                         </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">();
1290                         </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">();
1291                         </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">();
1292                     }
1293                     </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">]){
1294                         </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">];
1295                     }
1296                 }
1297                 </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">];
1298             }
1299         }
1300         </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">);
1301         </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">);
1302         </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">);
1303     },
1304
1305     </span><span class="jsdoc-var">handleLockChange </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1306         </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
1307     },
1308
1309     </span><span class="jsdoc-var">onDenyColumnLock </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1310
1311     },
1312
1313     </span><span class="jsdoc-var">onDenyColumnHide </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1314
1315     },
1316
1317     </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">){
1318         </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">;
1319         </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">;
1320         </span><span class="jsdoc-keyword">switch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item.id</span><span class="jsdoc-syntax">){
1321             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">&quot;asc&quot;</span><span class="jsdoc-syntax">:
1322                 </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">);
1323                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
1324             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">&quot;desc&quot;</span><span class="jsdoc-syntax">:
1325                 </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">);
1326                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
1327             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">&quot;lock&quot;</span><span class="jsdoc-syntax">:
1328                 </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">();
1329                 </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){
1330                     </span><span class="jsdoc-var">this.onDenyColumnLock</span><span class="jsdoc-syntax">();
1331                     </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1332                 }
1333                 </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">){
1334                     </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">);
1335                     </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">);
1336                     </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">);
1337                 }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
1338                     </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">);
1339                 }
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;unlock&quot;</span><span class="jsdoc-syntax">:
1342                 </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">();
1343                 </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">){
1344                     </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">);
1345                     </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);
1346                     </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);
1347                 }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
1348                     </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">);
1349                 }
1350             </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
1351             </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..
1352             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'narrow'</span><span class="jsdoc-syntax">:
1353                 </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">);
1354                 </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;
1355                 </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">);
1356                 </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);
1357                 </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">);
1358                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
1359                 
1360             </span><span class="jsdoc-keyword">default</span><span class="jsdoc-syntax">:
1361                 </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));
1362                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">!= -1){
1363                     </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){
1364                         </span><span class="jsdoc-var">this.onDenyColumnHide</span><span class="jsdoc-syntax">();
1365                         </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
1366                     }
1367                     </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">);
1368                 }
1369         }
1370         </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
1371     },
1372
1373     </span><span class="jsdoc-var">beforeColMenuShow </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1374         </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">();
1375         </span><span class="jsdoc-var">this.colMenu.removeAll</span><span class="jsdoc-syntax">();
1376         </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">++){
1377             </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">({
1378                 </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">),
1379                 </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">),
1380                 </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">),
1381                 </span><span class="jsdoc-var">hideOnClick</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">false
1382             </span><span class="jsdoc-syntax">}));
1383         }
1384     },
1385
1386     </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">){
1387         </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
1388         </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">);
1389         </span><span class="jsdoc-var">this.hdCtxIndex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">;
1390         </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">;
1391         </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">));
1392         </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">));
1393         </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">){
1394             </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">));
1395             </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">));
1396         }
1397         </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">);
1398     },
1399
1400     </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">){
1401         </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">());
1402         </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">){
1403             </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">))){
1404                </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">);
1405             }
1406         }
1407     },
1408
1409     </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">){
1410         </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">());
1411         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hd</span><span class="jsdoc-syntax">){
1412             </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">);
1413         }
1414     },
1415
1416     </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">){
1417         </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">);
1418         </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">)){
1419             </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">);
1420             </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
1421         }
1422     },
1423
1424     </span><span class="jsdoc-var">render </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1425
1426         </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">;
1427         </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">();
1428
1429         </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">){
1430             </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">);
1431         }
1432         </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">();
1433         </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">});
1434         </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">({
1435             </span><span class="jsdoc-var">lockedBody</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">body</span><span class="jsdoc-syntax">,
1436             </span><span class="jsdoc-var">body</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">body</span><span class="jsdoc-syntax">,
1437             </span><span class="jsdoc-var">lockedHeader</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">[0],
1438             </span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">[1]
1439         });
1440
1441         </span><span class="jsdoc-comment">//this.updateColumns();
1442
1443         </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">;
1444
1445         </span><span class="jsdoc-var">this.initElements</span><span class="jsdoc-syntax">();
1446         
1447         </span><span class="jsdoc-comment">// a kludge to fix the random scolling effect in webkit
1448         </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">() {
1449             </span><span class="jsdoc-var">this.el.dom.scrollTop</span><span class="jsdoc-syntax">=0; </span><span class="jsdoc-comment">// hopefully not recursive..
1450         </span><span class="jsdoc-syntax">},</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
1451
1452         </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">);
1453         </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">);
1454         </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">);
1455
1456         </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">);
1457         </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">);
1458         </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">,
1459                 {</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">});
1460
1461         </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">);
1462         </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">);
1463         </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">,
1464                 {</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">});
1465
1466         </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">){
1467             </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">);
1468         }
1469
1470         </span><span class="jsdoc-var">this.updateSplitters</span><span class="jsdoc-syntax">();
1471
1472         </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">){
1473             </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">);
1474             </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">);
1475         }
1476
1477         </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">){
1478             </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">});
1479             </span><span class="jsdoc-var">this.hmenu.add</span><span class="jsdoc-syntax">(
1480                 {</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">},
1481                 {</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">}
1482             );
1483             </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">){
1484                 </span><span class="jsdoc-var">this.hmenu.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'-'</span><span class="jsdoc-syntax">,
1485                     {</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">},
1486                     {</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">}
1487                 );
1488             }
1489             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isTouch</span><span class="jsdoc-syntax">) {
1490                  </span><span class="jsdoc-var">this.hmenu.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'-'</span><span class="jsdoc-syntax">,
1491                     {</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">},
1492                     {</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">}
1493                 );
1494                 
1495                  
1496             }
1497             
1498             </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">){
1499
1500                 </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">});
1501                 </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">);
1502                 </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">);
1503
1504                 </span><span class="jsdoc-var">this.hmenu.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'-'</span><span class="jsdoc-syntax">,
1505                     {</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">}
1506                 );
1507             }
1508             </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">);
1509
1510             </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">);
1511         }
1512
1513         </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">){
1514             </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">, {
1515                 </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'
1516             </span><span class="jsdoc-syntax">});
1517             
1518         }
1519
1520         </span><span class="jsdoc-comment">/*
1521         for(var i = 0; i &lt; colCount; i++){
1522             if(cm.isHidden(i)){
1523                 this.hideColumn(i);
1524             }
1525             if(cm.config[i].align){
1526                 this.css.updateRule(this.colSelector + i, &quot;textAlign&quot;, cm.config[i].align);
1527                 this.css.updateRule(this.hdSelector + i, &quot;textAlign&quot;, cm.config[i].align);
1528             }
1529         }*/
1530         
1531         </span><span class="jsdoc-var">this.updateHeaderSortState</span><span class="jsdoc-syntax">();
1532
1533         </span><span class="jsdoc-var">this.beforeInitialResize</span><span class="jsdoc-syntax">();
1534         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
1535
1536         </span><span class="jsdoc-comment">// two part rendering gives faster view to the user
1537         </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">);
1538     },
1539
1540     </span><span class="jsdoc-var">renderPhase2 </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1541         </span><span class="jsdoc-comment">// render the rows now
1542         </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">();
1543         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.autoSizeColumns</span><span class="jsdoc-syntax">){
1544             </span><span class="jsdoc-var">this.autoSizeColumns</span><span class="jsdoc-syntax">();
1545         }
1546     },
1547
1548     </span><span class="jsdoc-var">beforeInitialResize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1549
1550     },
1551
1552     </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">){
1553         </span><span class="jsdoc-var">this.userResized </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
1554         </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">;
1555         </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">);
1556         </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">);
1557         </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">);
1558         </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">);
1559         </span><span class="jsdoc-var">this.updateSplitters</span><span class="jsdoc-syntax">();
1560         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
1561         </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">);
1562     },
1563
1564     </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">){
1565         </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){
1566             </span><span class="jsdoc-var">startIndex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">startIndex </span><span class="jsdoc-syntax">|| 0;
1567             </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">;
1568             </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">;
1569             </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;
1570             </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">);
1571             </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">++){
1572                 </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">];
1573                 </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">);
1574                 </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">;
1575             }
1576         }
1577     },
1578
1579     </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">){
1580         </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">;
1581         </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">;
1582         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">scrollOffset </span><span class="jsdoc-syntax">= 16;
1583         </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">,
1584                 </span><span class="jsdoc-var">expandCol </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">g.autoExpandColumn</span><span class="jsdoc-syntax">,
1585                 </span><span class="jsdoc-var">gv </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
1586         </span><span class="jsdoc-comment">//c.beginMeasure();
1587
1588         </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?
1589             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">initialRender</span><span class="jsdoc-syntax">){
1590                 </span><span class="jsdoc-var">this.lockedWrap.show</span><span class="jsdoc-syntax">();
1591                 </span><span class="jsdoc-var">this.mainWrap.show</span><span class="jsdoc-syntax">();
1592             }
1593             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1594         }
1595
1596         </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);
1597
1598         </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">();
1599         </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">();
1600
1601         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">auto</span><span class="jsdoc-syntax">){
1602             </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">();
1603             </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">);
1604             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">g.maxHeight</span><span class="jsdoc-syntax">){
1605                 </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">);
1606             }
1607             </span><span class="jsdoc-var">c.setHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">newHeight</span><span class="jsdoc-syntax">);
1608         }
1609
1610         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">g.autoWidth</span><span class="jsdoc-syntax">){
1611             </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">));
1612         }
1613
1614         </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">;
1615
1616         </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">);
1617
1618         </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">);
1619
1620         </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">);
1621         </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">);
1622
1623         </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">();
1624         </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">;
1625         </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">);
1626
1627         </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">);
1628
1629         </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">();
1630         </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">?
1631                       </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;
1632
1633         </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">;
1634         </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">;
1635         </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">;
1636
1637         </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">);
1638
1639         </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">;
1640         </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">;
1641
1642         </span><span class="jsdoc-var">setTimeout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1643             </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">;
1644             </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">,
1645                 </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">s.dom.clientHeight</span><span class="jsdoc-syntax">;
1646
1647             </span><span class="jsdoc-var">lw.setTop</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">);
1648             </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">);
1649
1650             </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">);
1651             </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">);
1652
1653             </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">);
1654             </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">);
1655
1656             </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">){
1657                 </span><span class="jsdoc-comment">// high speed resize without full column calculation
1658                 
1659                 </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">);
1660                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ci </span><span class="jsdoc-syntax">&lt; 0) {
1661                     </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">);
1662                 }
1663                 </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.
1664                 </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">);
1665                 </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">);
1666                 </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">);
1667                 </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">);
1668                 </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">){
1669                     </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">);
1670                     </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">);
1671                     </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">);
1672                     </span><span class="jsdoc-var">gv.updateSplitters</span><span class="jsdoc-syntax">();
1673                     </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">);
1674                 }
1675             }
1676
1677             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">initialRender</span><span class="jsdoc-syntax">){
1678                 </span><span class="jsdoc-var">lw.show</span><span class="jsdoc-syntax">();
1679                 </span><span class="jsdoc-var">mw.show</span><span class="jsdoc-syntax">();
1680             }
1681             </span><span class="jsdoc-comment">//c.endMeasure();
1682         </span><span class="jsdoc-syntax">}, 10);
1683     },
1684
1685     </span><span class="jsdoc-var">onWindowResize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1686         </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">){
1687             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1688         }
1689         </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">();
1690     },
1691
1692     </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">){
1693         </span><span class="jsdoc-keyword">return null</span><span class="jsdoc-syntax">;
1694     },
1695
1696     </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">,
1697     </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">,
1698     </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">,
1699     </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">,
1700     </span><span class="jsdoc-var">columnsText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Columns&quot;</span><span class="jsdoc-syntax">,
1701  
1702     </span><span class="jsdoc-var">columnsWiderText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Wider&quot;</span><span class="jsdoc-syntax">,
1703     </span><span class="jsdoc-var">columnsNarrowText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Thinner&quot;
1704 </span><span class="jsdoc-syntax">});
1705
1706
1707 </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">){
1708     </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">);
1709     </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">);
1710 };
1711
1712 </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">, {
1713     </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">){
1714
1715     },
1716
1717     </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">){
1718         </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">);
1719     }
1720 });
1721 </span></code></body></html>