Использование Smart-Gwt ScrolledHandler

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

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

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

Любые идеи?


person krishnaz    schedule 27.01.2010    source источник


Ответы (1)


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

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

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

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

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

person Charles Kendrick    schedule 27.01.2010