¿Mouse sobre el oyente para FlexTable en GWT 1.7?
-
05-07-2019 - |
Pregunta
¿Cómo agregar un detector de eventos o un controlador a los widgets en GWT 1.7?
Sé que hay algunas preguntas sobre este tema en SO, pero parece que están desactualizadas. Por ejemplo (ignorando el hecho de que hay un: hover en CSS), ¿cómo agrego un oyente Hover a un FlexTable, por ejemplo?
Solución
Si desea agregar un MouseOverHandler a un FlexTable intente esto:
public class MyFlexTable extends FlexTable implements MouseOverHandler, HasMouseOverHandler {
public MyFlexTable() {
this.addMouseOverHandler(this);
}
public void onMouseOver(MouseOverEvent event) {
//do something
}
public HandlerRegistration addMouseOverHandler(MouseOverHandler handler) {
return addDomHandler(handler, MouseOverEvent.getType());
}
}
Otros consejos
A partir de GWT 1.6 usas Handlers en lugar de Listeners. Así, por ejemplo, para pasar el mouse, debe agregar un MouseOverHandler y un MouseOutHandler. El FlexTable en sí no implementa estas interfaces, por lo que probablemente querrá implementarlo en los widgets contenidos en el FlexTable. Por ejemplo,
myWidget.addMouseOverHandler(new MouseOverHandler(){
void onMouseOver(MouseOverEvent event){
doHovering();
}
});
Similarmente para agregar un MouseOutHandler.