2010-10-20 10 views
5

chcę zadzwonić kliknij funkcję zdarzenia dla przycisku w GWT ... Próbowałem ten kod, ale nie działa ..wezwanie click() funkcja, jak programowo w GWT

Button btnAddField = new Button(); 
btnAddField.setText("Add"); 
btnAddField.setWidth("225px"); 
btnAddField.addClickHandler(new btnAddFieldButtonClickListener()); 


private class btnAddFieldButtonClickListener implements ClickHandler{ 
     public void onClick(ClickEvent event) { 
Window.alert("Called Click Event"); 
} 
} 

funkcja ta Wiil zawijają kliknij przycisk ale nie zadzwonić po wywołać tę funkcję btnAddField.click()

+0

Zakładam, że przycisk zostanie dodany do DOM, gdy zadzwonisz do 'click()'? –

+0

czy wiesz, jak możemy rozwiązać ten problem? – Kandha

Odpowiedz

2

rozwiązać ten problem za pomocą tego kodu

btnAddField.fireEvent(new ButtonClickEvent()) 

private class ButtonClickEvent extends ClickEvent{ 
     /*To call click() function for Programmatic equivalent of the user clicking the button.*/ 
    } 

Teraz działa dobrze.

6

Można też spróbować:

view.btnAddField.fireEvent(new ClickEvent() { }); 

(To trochę hack, ponieważ com.google.gwt.event.dom.client.ClickEvent jest chroniony konstruktora).

lub

DomEvent.fireNativeEvent(Document.get().createClickEvent(0, 0, 0, 0, 0, 
      false, false, false, false), view.btnAddField); 

Następnie w obu przypadkach nie ma potrzeby utworzyć oddzielne klasy i przerwać enkapsulację dla procedur obsługi w celu przetestowania zdarzeń kliknięcia.