2010-01-27 8 views
1

Je voudrais faire quelque chose lorsqu'un événement de défilement s'est produit sur une fenêtre smartgwt. Je suppose qu'un événement sera déclenché lorsqu'au moins un des événements suivants s'est produit: faites défiler la fenêtre avec la molette de la souris, faites défiler en faisant glisser la barre de défilement ou faites défiler avec les flèches de défilement.Utilisation de ScrolledHandler Smart-Gwt

J'ai ajouté un gestionnaire à une fenêtre smartgwt et également au canevas smartgwt qui est le seul enfant de la fenêtre. Les deux ont été configurés pour écrire dans GWT.log. Cependant, je n'arrive pas à lancer un ScrollEvent.

Des idées?

Répondre

1

Je ne sais pas ce que vous avez tort, mais voici un échantillon de travail:

Window window = new Window(); 
window.resizeTo(200,200); 
VLayout layout = new VLayout(); 
layout.setOverflow(Overflow.AUTO); 

// create something large enough to allow scrolling 
Canvas canvas = new Canvas(); 
canvas.setHeight(500); 
layout.addMember(canvas); 
window.addItem(layout); 

layout.addScrolledHandler(new ScrolledHandler() { 
    @Override 
    public void onScrolled(ScrolledEvent event) { 
    SC.logWarn("scrolled"); 
    } 
}); 

window.draw(); 

Utilisez le développeur Console pour voir les journaux (voir le SmartGWT FAQ pour savoir comment y accéder):

http://forums.smartclient.com/showthread.php?t=8159#aConsole

La fenêtre a beaucoup d'enfants générés automatiquement (par exemple son en-tête et pied de page) alors peut-être que vous avez essayé d'ajouter un écouteur à l'un d'entre eux, et ce n'était pas défilement.

Questions connexes