Object (String s) { final int selectedIndex = getSelectedIndex(); final ListIterator<?> it = getElementIterator(selectedIndex + 1); final Object current; if (it.hasPrevious()) { current = it.previous(); it.next(); } else { current = null; } final String _s = s.trim(); while (it.hasNext()) { final Object element = it.next(); if (isMatchingElement(element, _s)) return element; } if (!myCanExpand) { showHint(mySearchOption); } if (UISettings.getInstance().getCycleScrolling()) { final ListIterator<Object> i = getElementIterator(0); while (i.hasNext()) { final Object element = i.next(); if (isMatchingElement(element, _s)) return element; } } return current != null && isMatchingElement(current, _s) ? current : null; }