Я создал виджет, который расширяет SimplePanel и выполняет некоторый JSNI в методе onLoad():
public class AceEditor extends SimplePanel implements HasText {
private JavaScriptObject editor;
@Override
protected void onLoad() {
super.onLoad();
editor = createEditor(getElement());
}
private static native JavaScriptObject createEditor(Element element) /*-{
return $wnd.ace.edit(element);
}-*/;
@Override
public native void setText(String value) /*-{
[email protected]::editor.setValue(value);
}-*/;
@Override
public final native String getText() /*-{
return [email protected]::editor.getValue();
}-*/;
}
Проблема в том, что когда я вызываю setText
в первый раз, виджет еще не прикреплен (onLoad
еще не вызывался).
Я использую этот виджет с UiBinder
.
Я мог бы использовать addAttachHandler
и проверить, подключен ли виджет, но это не кажется правильным способом сделать это...
Есть идеи, почему виджет не прикрепляется раньше?