Мне это тоже нужно было, и я нашел решение (в процессе тестирования, но solong работает):
Я скопировал код из TextInputCell в новый класс SuggestBoxTextInputCell
public class SuggestBoxTextInputCell extends AbstractInputCell<String, SuggestBoxTextInputCell.ViewData> {
MySuggestBox suggestBox;
и добавилнесколько строк в методе onBrowserEvent:
// Ignore events that don't target the input.
InputElement input = getInputElement(parent);
String eventType = event.getType();
if (BrowserEvents.FOCUS.equals(eventType)) {
TextBox textBox = new MyTextBox(input);
suggestBox = new MySuggestBox(getSuggestOracle(), textBox);
suggestBox.onAttach();
}
Element target = event.getEventTarget().cast();
Классы MySuggestBox и MyTextbox существуют только для того, чтобы сделать необходимые конструктор и методы общедоступными:
private class MyTextBox extends TextBox {
public MyTextBox(Element element) {
super(element);
}
}
private class MySuggestBox extends SuggestBox {
public MySuggestBox(SuggestOracle suggestOracle, TextBox textBox) {
super(suggestOracle, textBox);
}
@Override
public void onAttach() {
super.onAttach();
}
}
getSuggestOracle () предоставляет только необходимый SuggestOracle.Надеюсь, кто-то может использовать это решение.