Ascoltatore del mouse sopra per FlexTable in GWT 1.7?
-
05-07-2019 - |
Domanda
Come si aggiunge un listener di eventi o un gestore ai widget in GWT 1.7?
So che ci sono alcune domande su questo alreayd su SO ma sembra che siano obsolete. Ad esempio (ignorando il fatto che esiste un: hover nei CSS), come posso aggiungere un listener Hover a una FlexTable, per esempio?
Soluzione
Se vuoi aggiungere un MouseOverHandler a una FlexTable prova questo:
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());
}
}
Altri suggerimenti
A partire da GWT 1.6 usi Handlers invece di Listeners. Ad esempio, per il passaggio del mouse, aggiungi MouseOverHandler e MouseOutHandler. La stessa FlexTable non implementa queste interfacce, quindi probabilmente vorrai implementarla sui widget contenuti nella FlexTable. Ad esempio,
myWidget.addMouseOverHandler(new MouseOverHandler(){
void onMouseOver(MouseOverEvent event){
doHovering();
}
});
Allo stesso modo per l'aggiunta di un MouseOutHandler.