/** * Converts the element to String. * <p/> * This method will invoke {@link #convertElementToString(Object)} only. This method is added to provide a public * method for ShrinkSearchSupport without breaking the existing code of the customers. * * @param element the element to be converted * @return the string representing the element in the component. * @since 3.4.5 */ public String convertToString(Object element) { return convertElementToString(element); }
/** * Gets the element at the specified index as string using {@link #convertElementToString(Object)} method. * * @param index the index. * @return the element at the index converted to string. */ public String getElementAtAsString(int index) { return convertElementToString(getElementAt(index)); }
public void valueChanged(ListSelectionEvent e) { int index = list.getSelectedIndex(); if (index != -1) { getTextComponent().setText(getSearchable().convertElementToString(list.getModel().getElementAt(index))); highlightCompletedText(0); } } });
/** * Checks if the element matches the searching text. * * @param element the element to be checked * @param searchingText the searching text * @return true if matches. */ protected boolean compare(Object element, String searchingText) { String text = convertElementToString(element); return text != null && compare(isCaseSensitive() ? text : text.toLowerCase(), searchingText); }
/** * Finds the first element that matches the searching text exactly. * * @param s the searching text * @return the first element that matches with the searching text. * @since 3.6.1 */ public int findFirstExactly(String s) { String str = isCaseSensitive() ? s : s.toLowerCase(); int count = getElementCount(); if (count == 0) return s.length() > 0 ? -1 : 0; for (int i = 0; i < count; i++) { int index = getIndex(count, i); Object element = getElementAt(index); String text = convertElementToString(element); if (JideSwingUtilities.equals(text, str)) return index; } return -1; } }
Object item = getSearchable().getElementAt(index); setSelectedItem(item); getTextComponent().setText(getSearchable().convertElementToString(item)); // this is what auto complete is
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))); } }
private void setInitValue() { int index = getSearchable().getSelectedIndex(); if (index != -1) { Object selected = getSearchable().getElementAt(index); if (selected != null) _document.setText(getSearchable().convertElementToString(selected)); highlightCompletedText(0); } else { _document.setText(""); } }
/** * Select the index for the searching text. * * @param index the start offset * @param searchingText the searching text presented in the searchable event to be fired here. */ protected void select(int index, String searchingText) { if (index != -1) { setSelectedIndex(index, true); setCursor(index, true); Object element = getElementAt(index); fireSearchableEvent(new SearchableEvent(this, SearchableEvent.SEARCHABLE_MATCH, searchingText, element, convertElementToString(element))); } else { setSelectedIndex(-1, false); fireSearchableEvent(new SearchableEvent(this, SearchableEvent.SEARCHABLE_NOMATCH, searchingText)); } }
@Override protected void select(int index, KeyEvent e, String searchingText) { if (index != -1) { boolean incremental = e != null && isIncrementalSelectKey(e); setSelectedIndex(index, incremental); Searchable.this.setCursor(index, incremental); _textField.setForeground(Searchable.this.getForeground()); _noMatch.setText(""); } else { _textField.setForeground(getMismatchForeground()); _noMatch.setText(getResourceString("Searchable.noMatch")); } updatePopupBounds(); if (index != -1) { Object element = getElementAt(index); fireSearchableEvent(new SearchableEvent(Searchable.this, SearchableEvent.SEARCHABLE_MATCH, searchingText, element, convertElementToString(element))); } else { fireSearchableEvent(new SearchableEvent(Searchable.this, SearchableEvent.SEARCHABLE_NOMATCH, searchingText)); } }
item = getSearchable().getElementAt(index); setSelectedItem(item); setText(getSearchable().convertElementToString(item)); // this is what auto complete is item = getSearchable().getElementAt(index); setSelectedItem(item); setText(getSearchable().convertElementToString(item)); // this is what auto complete is setText(getSearchable().convertElementToString(item)); setText(getSearchable().convertElementToString(item));
protected void select(int index, String searchingText, boolean incremental) { if (index != -1) { _searchable.setSelectedIndex(index, incremental); _searchable.setCursor(index, incremental); _textField.setBackground(UIDefaultsLookup.getColor("TextField.background")); _comboBox.getEditor().getEditorComponent().setBackground(UIDefaultsLookup.getColor("TextField.background")); } else { _searchable.setSelectedIndex(-1, false); _textField.setBackground(getMismatchBackground()); _comboBox.getEditor().getEditorComponent().setBackground(UIDefaultsLookup.getColor("TextField.background")); } _searchable.firePropertyChangeEvent(searchingText); if (index != -1) { Object element = _searchable.getElementAt(index); _searchable.fireSearchableEvent(new SearchableEvent(_searchable, SearchableEvent.SEARCHABLE_MATCH, searchingText, element, _searchable.convertElementToString(element))); } else { _searchable.fireSearchableEvent(new SearchableEvent(_searchable, SearchableEvent.SEARCHABLE_NOMATCH, searchingText)); } }