2012-04-10 14 views
12

Sto creando un widget personalizzato in GWT estendendo Composite e implementando ClickHandler. Ho già implementato il metodo onClick, ma clickEvent non funziona. Quale metodo devo implementare ulteriormente nella classe per fare in modo che clickEvent funzioni? Può essere HandlerRegistration? Come?Implementare ClickHandler nel widget personalizzato

+0

Si prega di contrassegnare una di quelle risposte come accettate in quanto probabilmente hanno risposto alla tua domanda e risolto il tuo problema. –

risposta

18

Se si desidera che il widget si comporti come widget GWT selezionabili, è necessario utilizzare l'interfaccia com.google.gwt.event.dom.client.HasClickHandlers.

public class MyWidget extends Widget 
implements HasClickHandlers 
{ 
    public HandlerRegistration addClickHandler(
     ClickHandler handler) 
    { 
     return addDomHandler(handler, ClickEvent.getType()); 
    } 
} 
4

Prova

this.addClickHandler(myClckHandler) ; 

o, se non disponibili

this.addDomHandler(myClckHandler , ClickEvent.getType()) ; 

questo dovrebbe funziona

Modifica ==> questo dovrebbe opere:

public class Foo extends Composite { 

private ClickHandler myClkHandler = new ClickHandler() { 
    @Override 
    public void onClick(ClickEvent event) { 
     Window.alert("Overnuts is the best !") ; 
    } 
}; 

public Foo() { 
    initWidget(this) ; 
    this.addDomHandler(myClkHandler, ClickEvent.getType()) ; 
    } 
} 
+0

Dove? Nel costruttore? Allora è myClickHandler? – arjacsoh

+0

Ancora non cambia nulla. Suppongo che abbia a che fare con HandlerRegistration. – arjacsoh

Problemi correlati