Добавление / изменение SuggestOracle после построения SuggestBox в GWT

вся информация, которую я могу найти для SuggestBox и MultiWordSuggestOracle, предполагает, что единственный способ установить oracle для suggest box-это когда он построен. Я не думаю, что это имеет смысл, поскольку есть конструктор по умолчанию, который не принимает Oracle и создает для вас, думая, что он пуст. От этого мало толку. То, что я ищу, будет такими методами, как setSuggestOracle(MultiWordSuggestOracle) или addToSuggestOracle(String), но я не могу найти ничего в документации о том, как это сделать этот.

1 ответов


не похоже, что вы можете изменить экземпляр 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
}