在GWT中构建SuggestBox后添加/修改SuggestOracle

时间:2012-01-04 21:58:47

标签: java gwt

我可以为SuggestBox和MultiWordSuggestOracle找到的所有信息表明,为建议框设置oracle的唯一方法是在构造它时。我不认为这是有道理的,因为有一个默认构造函数不接受oracle并为你创建一个,可能是空的。这没什么好处的。我正在寻找的是像setSuggestOracle(MultiWordSuggestOracle)addToSuggestOracle(String)这样的方法,但我在文档中找不到任何建议如何做到这一点。

1 个答案:

答案 0 :(得分:8)

SuggestOracle创建后,您似乎无法更改SuggestBox的实例,但您可以使用SuggetBox::getSuggestOracle()访问它。从那里你必须转向实现类来对其进行更改; SuggestOracle基类本身不提供任何内容。如下所示:

SuggestOracle oracle = new MultiWordSuggestOracle();
SuggestBox box = new SuggestBox(oracle);

try {
  MultiWordSuggestOracle multiWordOracle = (MultiWordSuggestOracle)box.getOracle();
  multiWordOracle.add("This awesome suggestion.");
} catch (ClassCastException e ) {
  // the oracle was not what you thought it was
}