Я должен создать SuggestBox, который покажет все варианты при нажатии клавиши Enter. Я записал следующую реализацию, и это, кажется, хорошо работает. Я хотел бы, чтобы кто-то рассмотрел мою реализацию и сообщил мне, вызовет ли она проблемы в каком-либо конкретном сценарии. Кроме того, SuggestOracle, который будет передан этому SuggestBox, нужно установить предложения по умолчанию путем вызова метода setDefaultSuggestions () на MultiWordSuggestOracle. Любой пользователь моего SuggestBox должен быть очевиден для этого факта. Следовательно я предполагаю, что должен буду перенестись (или расшириться), MultiWordSuggestOracle, чтобы сделать настройки предложений по умолчанию. Можно ли рекомендовать то, что будет хорошим способом сделать это?
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);