@@ -57,63 +57,45 @@ class RowModel extends BaseModel {
57
57
return this . view . vdom . cn [ 0 ] . cn [ 1 ] . cn [ index ] . id
58
58
}
59
59
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
-
80
60
/**
81
61
* @param {Object } data
82
62
*/
83
63
onKeyDownDown ( data ) {
84
- this . onNavKeyRow ( data , 1 )
64
+ this . onNavKeyRow ( 1 )
85
65
}
86
66
87
67
/**
88
68
* @param {Object } data
89
69
*/
90
70
onKeyDownUp ( data ) {
91
- this . onNavKeyRow ( data , - 1 )
71
+ this . onNavKeyRow ( - 1 )
92
72
}
93
73
94
74
/**
95
- * @param {Object } data
96
75
* @param {Number } step
97
76
*/
98
- onNavKeyRow ( data , step ) {
77
+ onNavKeyRow ( step ) {
99
78
let me = this ,
100
- node = RowModel . getRowNode ( data . path ) ,
101
- { view} = me ,
79
+ { view} = me . view ,
102
80
{ 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 ( ) ;
107
89
108
90
while ( newIndex < 0 ) {
109
91
newIndex += store . getCount ( )
110
92
}
111
93
112
- id = parentNode . cn [ newIndex ] . id ;
94
+ newRecord = store . getAt ( newIndex ) ;
95
+ rowId = view . getRowId ( newRecord ) ;
113
96
114
- if ( id ) {
115
- me . select ( id ) ;
116
- view . focus ( id ) ;
97
+ if ( rowId ) {
98
+ me . select ( rowId ) ;
117
99
118
100
view . fire ( 'select' , {
119
101
record : store . getAt ( newIndex )
@@ -127,7 +109,7 @@ class RowModel extends BaseModel {
127
109
onRowClick ( data ) {
128
110
let me = this ,
129
111
id = data . data . currentTarget ,
130
- { view} = me ,
112
+ { view} = me . view ,
131
113
isSelected , record ;
132
114
133
115
if ( id ) {
0 commit comments