Использование Smart-Gwt ScrolledHandler - PullRequest
1 голос
/ 27 января 2010

Я бы хотел что-то сделать, когда в окне smartgwt произошло событие прокрутки. Я предполагаю, что событие будет запущено, когда произойдет хотя бы одно из следующего: прокрутка в окне с помощью колеса прокрутки мыши, прокрутка с помощью полосы прокрутки или прокрутка с помощью стрелок прокрутки.

Я добавил обработчик в окно smartgwt, а также на холст smartgwt, который является единственным дочерним элементом окна. Оба были настроены на запись в GWT.log.

Однако я не могу запустить ScrollEvent.

Есть идеи?

1 Ответ

1 голос
/ 27 января 2010

Не уверен, что вы сделали не так, но вот рабочий пример:

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();

Используйте консоль разработчика для просмотра журналов (для получения доступа к ней см. FAQ по SmartGWT):

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

В окне есть много автоматически сгенерированных дочерних элементов (например, его верхний и нижний колонтитулы), поэтому, возможно, вы попытались добавить слушателя к одному из них, и его нельзя было прокрутить.

...