@@ -57,63 +57,45 @@ class RowModel extends BaseModel {
5757 return this . view . vdom . cn [ 0 ] . cn [ 1 ] . cn [ index ] . id
5858 }
5959
60- /**
61- * Finds the matching table row for a given event path
62- * @param {Object } path The event path
63- * @returns {Object|null } The node containing the table row class or null
64- * @protected
65- */
66- static getRowNode ( path ) {
67- let i = 0 ,
68- len = path . length ,
69- node = null ;
70-
71- for ( ; i < len ; i ++ ) {
72- if ( path [ i ] . cls . includes ( 'neo-grid-row' ) ) {
73- node = path [ i ]
74- }
75- }
76-
77- return node
78- }
79-
8060 /**
8161 * @param {Object } data
8262 */
8363 onKeyDownDown ( data ) {
84- this . onNavKeyRow ( data , 1 )
64+ this . onNavKeyRow ( 1 )
8565 }
8666
8767 /**
8868 * @param {Object } data
8969 */
9070 onKeyDownUp ( data ) {
91- this . onNavKeyRow ( data , - 1 )
71+ this . onNavKeyRow ( - 1 )
9272 }
9373
9474 /**
95- * @param {Object } data
9675 * @param {Number } step
9776 */
98- onNavKeyRow ( data , step ) {
77+ onNavKeyRow ( step ) {
9978 let me = this ,
100- node = RowModel . getRowNode ( data . path ) ,
101- { view} = me ,
79+ { view} = me . view ,
10280 { store} = view ,
103- vdomNode = VDomUtil . find ( view . vdom , node . id ) ,
104- newIndex = ( vdomNode . index + step ) % store . getCount ( ) ,
105- { parentNode} = vdomNode ,
106- id ;
81+ currentIndex = 0 ,
82+ newIndex , newRecord , rowId ;
83+
84+ if ( me . hasSelection ( ) ) {
85+ currentIndex = store . indexOf ( view . getRecordByRowId ( me . items [ 0 ] ) )
86+ }
87+
88+ newIndex = ( currentIndex + step ) % store . getCount ( ) ;
10789
10890 while ( newIndex < 0 ) {
10991 newIndex += store . getCount ( )
11092 }
11193
112- id = parentNode . cn [ newIndex ] . id ;
94+ newRecord = store . getAt ( newIndex ) ;
95+ rowId = view . getRowId ( newRecord ) ;
11396
114- if ( id ) {
115- me . select ( id ) ;
116- view . focus ( id ) ;
97+ if ( rowId ) {
98+ me . select ( rowId ) ;
11799
118100 view . fire ( 'select' , {
119101 record : store . getAt ( newIndex )
@@ -127,7 +109,7 @@ class RowModel extends BaseModel {
127109 onRowClick ( data ) {
128110 let me = this ,
129111 id = data . data . currentTarget ,
130- { view} = me ,
112+ { view} = me . view ,
131113 isSelected , record ;
132114
133115 if ( id ) {
0 commit comments