2012-04-10 14 views
12

Estoy creando un widget personalizado en GWT extendiendo Composite e implementando ClickHandler. Ya implementé el método onClick, pero el evento clickEvent no funciona. ¿Qué método debo implementar adicionalmente en la clase para que el evento clickEvent funcione? ¿Puede ser HandlerRegistration? ¿Cómo?Implementar ClickHandler en Widget personalizado

+0

Marque una de esas respuestas como aceptadas, ya que probablemente hayan respondido a su pregunta y haya resuelto su problema. –

Respuesta

18

Si desea que su widget se comporte como widgets GWT seleccionables, debe usar la interfaz 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

Trate

this.addClickHandler(myClckHandler) ; 

o si no está disponible

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

esto debería funciona

editar ==> Esto debería trabajos:

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

¿Dónde? En el constructor? ¿Qué es entonces myClickHandler? – arjacsoh

+0

Todavía no cambia nada. Supongo que tiene que ver con HandlerRegistration. – arjacsoh

Cuestiones relacionadas