I would like to do something when a scroll event has occurred on a smartgwt window. I'm assuming that an event will be fired when at least one of the following has happened: scroll within window with mouse scroll wheel, scroll by dragging scroll bar, or scroll using scroll arrows.
I've added a handler to a smartgwt window and also to the smartgwt canvas which is the only child of the window. Both have been set up to write to GWT.log.
However, I can't seem to get a ScrollEvent
to fire.
Any ideas?
Not sure what you did wrong, but here's a working sample:
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();
Use the Developer Console to see the logs (see the SmartGWT FAQ for how to access it):
http://forums.smartclient.com/showthread.php?t=8159#aConsole
The window has a lot of auto-generated children (eg its header and footer) so maybe you attempted to add a listener to one of those, and it wasn't scrollable.