@Override public int reverseFindFromCursor(String s) { if (!isReverseOrder()) { return findFromCursor(s); } if (_component instanceof JTextComponent) { String text = getDocumentText(); int selectedIndex = (getCursor() != -1 ? getCursor() : getSelectedIndex()); if (selectedIndex < 0) selectedIndex = 0; int count = getElementCount(); if (count == 0) return s.length() > 0 ? -1 : 0; // find from cursor int found = isCaseSensitive() ? text.lastIndexOf(s, selectedIndex) : lastIndexOf(text, s, selectedIndex); // if not found, start over from the end if (found == -1) { found = isCaseSensitive() ? text.lastIndexOf(s, text.length() - 1) : lastIndexOf(text, s, text.length() - 1); if (found <= selectedIndex) { found = -1; } } return found; } else { return super.findFromCursor(s); } }
protected void applyText() { String text = _textField.getText(); firePropertyChangeEvent(text); if (text.length() != 0) { int found = findFromCursor(text); if (found == -1) { _textField.setForeground(getMismatchForeground()); } else { _textField.setForeground(foreground); } select(found, null, text); } else { _textField.setForeground(foreground); _noMatch.setText(""); updatePopupBounds(); hidePopup(); } }
protected void textChanged(String text) { if (text == null || text.length() == 0) { firePropertyChangeEvent(""); return; } int found = findFromCursor(text); if (found == -1) { firePropertyChangeEvent(text); fireSearchableEvent(new SearchableEvent(this, SearchableEvent.SEARCHABLE_NOMATCH, text)); } else { firePropertyChangeEvent(text); Object element = getElementAt(found); fireSearchableEvent(new SearchableEvent(this, SearchableEvent.SEARCHABLE_MATCH, text, element, convertElementToString(element))); } }
return findFromCursor(s);
return super.findFromCursor(s);
int found = _searchable.findFromCursor(getSearchingText()); if (initialText.length() != 0 && found == -1) { select(found, initialText, false);
return; int index = getSearchable().findFromCursor(text); Object item; if (index != -1) { if (offs == 0 && text.equals(str)) { getSearchable().textChanged(""); index = getSearchable().findFromCursor(text); if (index != -1) { item = getSearchable().getElementAt(index);
private void highlightNext() { _searchable.cancelHighlightAll(); String text = getSearchingText(); if (text == null || text.length() == 0) { _findNextButton.setEnabled(false); _findPrevButton.setEnabled(false); _highlightsButton.setEnabled(false); select(-1, "", false); clearStatus(); return; } int found = _searchable.findFromCursor(text); if (found == -1) { select(-1, "", false); _findNextButton.setEnabled(false); _findPrevButton.setEnabled(false); _highlightsButton.setEnabled(false); setStatus(getResourceString("SearchableBar.notFound"), getImageIcon(SearchableBarIconsFactory.Buttons.ERROR)); } else { select(found, text, false); _findNextButton.setEnabled(true); _findPrevButton.setEnabled(true); _highlightsButton.setEnabled(true); clearStatus(); } }