diciamo che ho un widget personalizzato che ha un ClickHandler. Ecco l'esempio:GWT aggiungendo un ClickHandler a un elemento DOM
public class TestWidget extends Composite {
private static TestWidgetUiBinder uiBinder = GWT
.create(TestWidgetUiBinder.class);
interface TestWidgetUiBinder extends UiBinder<Widget, TestWidget> {
}
@UiField
Button button;
public TestWidget(String firstName) {
initWidget(uiBinder.createAndBindUi(this));
button.setText(firstName);
}
@UiHandler("button")
void onClick(ClickEvent e) {
Window.alert("Hello!");
}
}
Quando provo ad aggiungere questo Widget come questo:
TestWidget testWidget = new TestWidget("myTestWidget");
RootPanel.get().add(testWidget);
tutto va bene. Se clicco sul mio pulsante ottengo il messaggio che mi aspetto. Tuttavia, se aggiungo in questo modo:
TestWidget testWidget = new TestWidget("myTestWidget");
RootPanel.getBodyElement().appendChild(testWidget.getElement());
mio evento click non è essere licenziato. Sto lottando per capire perché. Sarebbe bello se qualcuno potesse spiegarmi questo o collegarmi ad una risorsa in cui posso leggere questo. Infine mi piacerebbe sapere se è possibile aggiungere il clickhandler in seguito ho aggiunto l'evento figlio e se è consigliabile. Grazie per l'aiuto in anticipo.
Kuku