В группе Google GWT есть сообщение, в котором обсуждается ответ. По сути, вы создаете свой пользовательский виджет как обычно, а внутри функции визуализации вы используете widget.getElement (). GetInnterHTML ().
@Override
public void render(com.google.gwt.cell.client.Cell.Context context, String value, SafeHtmlBuilder sb) {
if (value != null) {
MyWidget widget = new MyWidget(value);
sb.appendEscaped(widget.getElement.getInnerHTML());
}
}
Это работает, но есть ограничение:
- Вы НЕ МОЖЕТЕ прикрепить любой обработчик непосредственно к вашему виджету (внешнему или внутреннему).
например:
widget.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
// Won't work!!!
}
});
или
widget.getMyTextBox().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
// Won't work!!!
}
});