【发布时间】:2010-06-14 17:33:48
【问题描述】:
我需要创建一个 SuggestBox,它会在按下时显示所有选项 回车键。 我已经编写了以下实现,它似乎是 工作正常。 我希望有人审查我的实施并让我知道它是否 在任何特定情况下都会导致问题。 此外,要传递给这个 SuggestBox 的 SuggestOracle 应该有 默认建议集,通过调用方法 MultiWordSuggestOracle 上的 setDefaultSuggestions()。我的任何用户 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);
【问题讨论】:
标签: gwt