@@ -181,7 +181,7 @@ public void onKeyUp(KeyUpEvent event) {
181181 reset (obj .getKeyword ());
182182 });
183183 // If matches add to search result container and object to temp searches
184- if (obj . getKeyword (). toLowerCase (). contains ( keyword )) {
184+ if (match ( obj , keyword )) {
185185 searchResultPanel .add (link );
186186 tempSearches .add (obj );
187187 }
@@ -211,25 +211,21 @@ public void onKeyUp(KeyUpEvent event) {
211211
212212 // Selection logic using key down event to navigate the search results
213213 int totalItems = searchResultPanel .getWidgetCount ();
214- if (event .getNativeEvent ().getKeyCode () == KeyCodes .KEY_DOWN ) {
215- if (curSel >= totalItems ) {
216- setCurSel (getCurSel ());
217- applyHighlightedItem ((MaterialLink ) searchResultPanel .getWidget (curSel - 1 ));
218- } else {
219- setCurSel (getCurSel () + 1 );
220- applyHighlightedItem ((MaterialLink ) searchResultPanel .getWidget (curSel ));
214+ if (totalItems > 0 ) {
215+ if (event .getNativeEvent ().getKeyCode () == KeyCodes .KEY_DOWN ) {
216+ if (++curSel >= totalItems )
217+ curSel = 0 ;
218+
219+ applyHighlightedItem ((MaterialLink ) searchResultPanel .getWidget (curSel ));
221220 }
222- }
223221
224- // Selection logic using key up event to navigate the search results
225- if (event .getNativeEvent ().getKeyCode () == KeyCodes .KEY_UP ) {
226- if (curSel <= -1 ) {
227- setCurSel (-1 );
228- applyHighlightedItem ((MaterialLink ) searchResultPanel .getWidget (curSel ));
229- } else {
230- setCurSel (getCurSel () - 1 );
231- applyHighlightedItem ((MaterialLink ) searchResultPanel .getWidget (curSel ));
232- }
222+ // Selection logic using key up event to navigate the search results
223+ if (event .getNativeEvent ().getKeyCode () == KeyCodes .KEY_UP ) {
224+ if (--curSel < 0 )
225+ curSel = totalItems - 1 ;
226+
227+ applyHighlightedItem ((MaterialLink ) searchResultPanel .getWidget (curSel ));
228+ }
233229 }
234230 }
235231
@@ -244,6 +240,10 @@ private void reset(String keyword) {
244240 }));
245241 }
246242
243+ protected boolean match (SearchObject obj , String keyword ) {
244+ return obj .getKeyword ().toLowerCase ().contains (keyword );
245+ }
246+
247247 @ Override
248248 protected void onUnload () {
249249 super .onUnload ();
0 commit comments