2009-11-30 5 views
0

Я пытаюсь выяснить, какое свойство BoxComponentEvent сообщит мне, если сгенерированное событие OnMouseWheel было прокруткой или прокруткой вниз. Я выдаю значения всех свойств, предоставляемых BoxComponentEvent; и все они (за исключением координат, в которых происходило событие) остаются неизменными независимо. Google и документы Ext-GWT были довольно бесполезны для предоставления конкретного примера.Правильное обращение с событиями OnMouseWheel в 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()); 
    } 
    // ... 
} 

ответ

0

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

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; 

      }}); 
    } 
+0

Это будет только сказать мне, если есть событие колеса, а не направление события колеса, которое является то, что мне нужно знать, как для извлечения. –

+0

Обновлен мой ответ, чтобы включить решение, которое работает в моей среде. Надеюсь, что это поможет тебе. – Upgradingdave

+0

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