Корректная обработка событий OnMouseWheel в Ext-GWT - PullRequest
0 голосов
/ 30 ноября 2009

Я пытаюсь выяснить, какое свойство BoxComponentEvent сообщит мне, было ли сгенерированное событие OnMouseWheel событием прокрутки вверх или прокрутки вниз. Я вывел значения всех свойств, которые BoxComponentEvent предоставляет; и все они (за исключением координат, в которых произошло событие) остаются неизменными независимо. Документы Google и Ext-GWT были довольно бесполезны для предоставления конкретного примера.

public class MyPanel extends ContentPanel {
    // ...
    public MyPanel() {
        addListener(Events.OnMouseWheel, new Listener<BoxComponentEvent>() {
            public void handleEvent(BoxComponentEvent be) {
                // What happens here to distinguish scroll-up and scroll-down?
            }
        });
    }

    protected void afterRender() {
        super.afterRender();
        el().addEventsSunk(Events.OnMouseWheel.getEventCode());
    }
    // ...
}

Ответы [ 2 ]

1 голос
/ 25 ноября 2010
be.getEvent().getMouseWheelVelocityY()
0 голосов
/ 01 декабря 2009

Я проверил это, и оно работает:

private int vpos = 0;
public MyPanel() {
        ContentPanel contents = new ContentPanel();
        contents.setHeight(500);

        add(new Label("This is MyPanel"));
        add(contents);
        setHeight(300);
        setScrollMode(Scroll.ALWAYS);
        vpos = getVScrollPosition();

        addListener(Events.Scroll, new Listener<BaseEvent>(){

            @Override
            public void handleEvent(BaseEvent be) {

                int newVpos = getVScrollPosition();
                if(newVpos<vpos){
                    Info.display("DEBUG", "UP!");
                } else if(newVpos>vpos){
                    Info.display("DEBUG", "DOWN!");
                }
                vpos = newVpos;

            }});
    }
...