Мне нужно создать 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);