1 <html><head><title>../roojs1/Roo/grid/CellSelectionModel.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">/*
4 * Copyright(c) 2006-2007, Ext JS, LLC.
6 * Originally Released Under LGPL - original licence link has changed is not relivant.
9 * <script type="text/javascript">
12 * @class Roo.grid.CellSelectionModel
13 * @extends Roo.grid.AbstractSelectionModel
14 * This class provides the basic implementation for cell selection in a grid.
16 * @param {Object} config The object containing the configuration of this model.
18 </span><span class="jsdoc-var">Roo.grid.CellSelectionModel </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">){
19 </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">);
21 </span><span class="jsdoc-var">this.selection </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
23 </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({
24 </span><span class="jsdoc-comment">/**
25 * @event beforerowselect
26 * Fires before a cell is selected.
27 * @param {SelectionModel} this
28 * @param {Number} rowIndex The selected row index
29 * @param {Number} colIndex The selected cell index
31 </span><span class="jsdoc-string">"beforecellselect" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
32 </span><span class="jsdoc-comment">/**
34 * Fires when a cell is selected.
35 * @param {SelectionModel} this
36 * @param {Number} rowIndex The selected row index
37 * @param {Number} colIndex The selected cell index
39 </span><span class="jsdoc-string">"cellselect" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
40 </span><span class="jsdoc-comment">/**
41 * @event selectionchange
42 * Fires when the active selection changes.
43 * @param {SelectionModel} this
44 * @param {Object} selection null for no selection or an object (o) with two properties
46 <li>o.record: the record object for the row the selection is in</li>
47 <li>o.cell: An array of [rowIndex, columnIndex]</li>
50 </span><span class="jsdoc-string">"selectionchange" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
51 </span><span class="jsdoc-syntax">});
52 </span><span class="jsdoc-var">Roo.grid.CellSelectionModel.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
55 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.grid.CellSelectionModel</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.grid.AbstractSelectionModel</span><span class="jsdoc-syntax">, {
57 </span><span class="jsdoc-comment">/** @ignore */
58 </span><span class="jsdoc-var">initEvents </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
59 </span><span class="jsdoc-var">this.grid.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"mousedown"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.handleMouseDown</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
60 </span><span class="jsdoc-var">this.grid.getGridEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isIE </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">"keydown" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"keypress"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.handleKeyDown</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
61 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">view </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.grid.view</span><span class="jsdoc-syntax">;
62 </span><span class="jsdoc-var">view.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"refresh"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onViewChange</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
63 </span><span class="jsdoc-var">view.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"rowupdated"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onRowUpdated</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
64 </span><span class="jsdoc-var">view.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"beforerowremoved"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.clearSelections</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
65 </span><span class="jsdoc-var">view.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"beforerowsinserted"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.clearSelections</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
66 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.isEditor</span><span class="jsdoc-syntax">){
67 </span><span class="jsdoc-var">this.grid.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"beforeedit"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.beforeEdit</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
71 </span><span class="jsdoc-comment">//private
72 </span><span class="jsdoc-var">beforeEdit </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">){
73 </span><span class="jsdoc-var">this.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.row</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e.column</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">, </span><span class="jsdoc-var">e.record</span><span class="jsdoc-syntax">);
76 </span><span class="jsdoc-comment">//private
77 </span><span class="jsdoc-var">onRowUpdated </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">){
78 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.selection </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">this.selection.record </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">){
79 </span><span class="jsdoc-var">v.onCellSelect</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.selection.cell</span><span class="jsdoc-syntax">[1]);
83 </span><span class="jsdoc-comment">//private
84 </span><span class="jsdoc-var">onViewChange </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
85 </span><span class="jsdoc-var">this.clearSelections</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
88 </span><span class="jsdoc-comment">/**
89 * Returns the currently selected cell,.
90 * @return {Array} The selected cell (row, column) or null if none selected.
92 </span><span class="jsdoc-var">getSelectedCell </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
93 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.selection </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.selection.cell </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
96 </span><span class="jsdoc-comment">/**
97 * Clears all selections.
98 * @param {Boolean} true to prevent the gridview from being notified about the change.
100 </span><span class="jsdoc-var">clearSelections </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">preventNotify</span><span class="jsdoc-syntax">){
101 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">s </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.selection</span><span class="jsdoc-syntax">;
102 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">){
103 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">preventNotify </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
104 </span><span class="jsdoc-var">this.grid.view.onCellDeselect</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">s.cell</span><span class="jsdoc-syntax">[0], </span><span class="jsdoc-var">s.cell</span><span class="jsdoc-syntax">[1]);
106 </span><span class="jsdoc-var">this.selection </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
107 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"selectionchange"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">);
111 </span><span class="jsdoc-comment">/**
112 * Returns true if there is a selection.
115 </span><span class="jsdoc-var">hasSelection </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
116 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.selection </span><span class="jsdoc-syntax">? </span><span class="jsdoc-keyword">true </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
119 </span><span class="jsdoc-comment">/** @ignore */
120 </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">, </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">){
121 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.grid.getView</span><span class="jsdoc-syntax">();
122 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isLocked</span><span class="jsdoc-syntax">()){
123 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
125 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">row </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">v.findRowIndex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">);
126 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">v.findCellIndex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">);
127 </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-keyword">false </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">cell </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
128 </span><span class="jsdoc-var">this.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">);
132 </span><span class="jsdoc-comment">/**
134 * @param {Number} rowIndex
135 * @param {Number} collIndex
137 </span><span class="jsdoc-var">select </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">, </span><span class="jsdoc-var">preventViewNotify</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">preventFocus</span><span class="jsdoc-syntax">, </span><span class="jsdoc-comment">/*internal*/ </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">){
138 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"beforecellselect"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</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-keyword">false</span><span class="jsdoc-syntax">){
139 </span><span class="jsdoc-var">this.clearSelections</span><span class="jsdoc-syntax">();
140 </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-var">this.grid.dataSource.getAt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">);
141 </span><span class="jsdoc-var">this.selection </span><span class="jsdoc-syntax">= {
142 </span><span class="jsdoc-var">record </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">,
143 </span><span class="jsdoc-var">cell </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">]
145 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">preventViewNotify</span><span class="jsdoc-syntax">){
146 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.grid.getView</span><span class="jsdoc-syntax">();
147 </span><span class="jsdoc-var">v.onCellSelect</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">);
148 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">preventFocus </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
149 </span><span class="jsdoc-var">v.focusCell</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">);
152 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"cellselect"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</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">);
153 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"selectionchange"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.selection</span><span class="jsdoc-syntax">);
157 </span><span class="jsdoc-comment">//private
158 </span><span class="jsdoc-var">isSelectable </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">, </span><span class="jsdoc-var">cm</span><span class="jsdoc-syntax">){
159 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">!</span><span class="jsdoc-var">cm.isHidden</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">);
162 </span><span class="jsdoc-comment">/** @ignore */
163 </span><span class="jsdoc-var">handleKeyDown </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">){
164 </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'Cell Sel Model handleKeyDown'</span><span class="jsdoc-syntax">);
165 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">e.isNavKeyPress</span><span class="jsdoc-syntax">()){
166 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
168 </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">s </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.selection</span><span class="jsdoc-syntax">;
169 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">){
170 </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
171 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">g.walkCells</span><span class="jsdoc-syntax">(0, 0, 1, </span><span class="jsdoc-var">this.isSelectable</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
172 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">){
173 </span><span class="jsdoc-var">this.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">[0], </span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">[1]);
175 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
177 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
178 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">walk </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">step</span><span class="jsdoc-syntax">){
179 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">g.walkCells</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">step</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">sm.isSelectable</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">sm</span><span class="jsdoc-syntax">);
181 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.getKey</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">s.cell</span><span class="jsdoc-syntax">[0], </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">s.cell</span><span class="jsdoc-syntax">[1];
182 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">newCell</span><span class="jsdoc-syntax">;
184 </span><span class="jsdoc-keyword">switch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">k</span><span class="jsdoc-syntax">){
185 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">e.TAB</span><span class="jsdoc-syntax">:
186 </span><span class="jsdoc-comment">// handled by onEditorKey
187 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">g.isEditor </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">g.editing</span><span class="jsdoc-syntax">) {
188 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
190 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.shiftKey</span><span class="jsdoc-syntax">){
191 </span><span class="jsdoc-var">newCell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">walk</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">-1, -1);
192 }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
193 </span><span class="jsdoc-var">newCell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">walk</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">+1, 1);
195 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
196 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">e.DOWN</span><span class="jsdoc-syntax">:
197 </span><span class="jsdoc-var">newCell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">walk</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">+1, </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">, 1);
198 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
199 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">e.UP</span><span class="jsdoc-syntax">:
200 </span><span class="jsdoc-var">newCell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">walk</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">-1, </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">, -1);
201 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
202 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">e.RIGHT</span><span class="jsdoc-syntax">:
203 </span><span class="jsdoc-var">newCell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">walk</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">+1, 1);
204 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
205 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">e.LEFT</span><span class="jsdoc-syntax">:
206 </span><span class="jsdoc-var">newCell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">walk</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">-1, -1);
207 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
208 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">e.ENTER</span><span class="jsdoc-syntax">:
209 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">g.isEditor </span><span class="jsdoc-syntax">&& !</span><span class="jsdoc-var">g.editing</span><span class="jsdoc-syntax">){
210 </span><span class="jsdoc-var">g.startEditing</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">);
211 </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
212 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
214 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
216 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">newCell</span><span class="jsdoc-syntax">){
217 </span><span class="jsdoc-var">this.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">newCell</span><span class="jsdoc-syntax">[0], </span><span class="jsdoc-var">newCell</span><span class="jsdoc-syntax">[1]);
218 </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
222 </span><span class="jsdoc-var">acceptsNav </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">cm</span><span class="jsdoc-syntax">){
223 </span><span class="jsdoc-keyword">return </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">) && </span><span class="jsdoc-var">cm.isCellEditable</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">);
226 </span><span class="jsdoc-var">onEditorKey </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">field</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
228 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.getKey</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">newCell</span><span class="jsdoc-syntax">, </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">ed </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">g.activeEditor</span><span class="jsdoc-syntax">;
229 </span><span class="jsdoc-comment">///Roo.log('onEditorKey' + k);
231 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">e.TAB</span><span class="jsdoc-syntax">){
232 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.shiftKey</span><span class="jsdoc-syntax">){
233 </span><span class="jsdoc-var">newCell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">g.walkCells</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ed.row</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ed.col</span><span class="jsdoc-syntax">-1, -1, </span><span class="jsdoc-var">this.acceptsNav</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
234 }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
235 </span><span class="jsdoc-var">newCell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">g.walkCells</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ed.row</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ed.col</span><span class="jsdoc-syntax">+1, 1, </span><span class="jsdoc-var">this.acceptsNav</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
237 </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
238 }</span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">e.ENTER </span><span class="jsdoc-syntax">&& !</span><span class="jsdoc-var">e.ctrlKey</span><span class="jsdoc-syntax">){
239 </span><span class="jsdoc-var">ed.completeEdit</span><span class="jsdoc-syntax">();
240 </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
241 </span><span class="jsdoc-var">newCell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">g.walkCells</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ed.row</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ed.col</span><span class="jsdoc-syntax">+1, 1, </span><span class="jsdoc-var">this.acceptsNav</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
242 }</span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">e.ESC</span><span class="jsdoc-syntax">){
243 </span><span class="jsdoc-var">ed.cancelEdit</span><span class="jsdoc-syntax">();
247 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">newCell</span><span class="jsdoc-syntax">){
248 </span><span class="jsdoc-comment">//Roo.log('next cell after edit');
249 </span><span class="jsdoc-var">g.startEditing.defer</span><span class="jsdoc-syntax">(100, </span><span class="jsdoc-var">g</span><span class="jsdoc-syntax">, [</span><span class="jsdoc-var">newCell</span><span class="jsdoc-syntax">[0], </span><span class="jsdoc-var">newCell</span><span class="jsdoc-syntax">[1]]);
252 });</span></code></body></html>