Potrzebuję utworzyć SuggestBox, który pokaże wszystkie opcje po naciśnięciu klawisza Enter: . Napisałem następujące wdrożenie i wygląda na to, że działa . Chciałbym, aby ktoś przejrzał moją implementację i daj mi znać, jeśli to spowoduje problemy w danym scenariuszu. Ponadto SuggestOracle, który ma zostać przekazany do tego SuggestBox, powinien mieć ustawione domyślne sugestie, wywołując metodę setDefaultSuggestions() w MultiWordSuggestOracle. Każdy użytkownik mojej komórki SuggestBox powinien być niewidoczny dla tego faktu. Dlatego sądzę, że będę musiał owinąć (lub przedłużyć) MultiWordSuggestOracle, aby wykonać domyślne ustawienia sugestii . Czy możesz polecić, co będzie dobrym sposobem na zrobienie tego?SuggestBox GWT pokazujący wszystkie opcje na klawiszu Enter
public class SuggestBoxWithAllOptions extends SuggestBox implements
KeyPressHandler {
public SuggestBoxWithAllOptions(MultiWordSuggestOracle oracle) {
super(oracle);
this.addKeyPressHandler(this);
}
@Override
public void onKeyPress(KeyPressEvent event) {
char c = event.getCharCode();
int i = this.getText().length();
if (c == KeyboardListener.KEY_ENTER && i == 0) {
/* Since the query string is null, the default suggestions
will get listed */
this.showSuggestionList();
}
}
}
/* Code for initializing the SuggestBox */
List<String> suggestions = new ArrayList<String>();
suggestions.add("Tablet");
suggestions.add("Capsule");
MultiWordSuggestOracle myOracle = new MultiWordSuggestOracle();
myOracle.addAll(suggestions);
myOracle.setDefaultSuggestionsFromText(suggestions);
SuggestBox mySuggest = new SuggestBoxWithAllOptions(myOracle);