2015-07-17 2 views
0

Если я установил обработчик для мыши над событием, это выглядело бы примерно так.Получение всех типов событий мыши

boxPanel.addDomHandler(new MouseOverHandler() { 
      @Override 
      public void onMouseOver(MouseOverEvent e) { 
       //do something 
      } 
     }, MouseOverEvent.getType()); 

Обратите внимание на MouseOverEvent.getType() в конце концов, как она относится к моему вопросу.

Если я хочу, чтобы добавить обработчик для всех событий мыши, как так

spotlightPanel.addDomHandler(new HandlesAllMouseEvents() { 
     @Override 
     public void onMouseOver(MouseOverEvent event) { 
      //do something 
     } 
     @Override 
     public void onMouseOut(MouseOutEvent event) { 
      //do something 
     } 
     @Override 
     public void onMouseDown(MouseDownEvent event) { 
      //do something 
     } 
     @Override 
     public void onMouseUp(MouseUpEvent event) { 
      //do something 
     } 
     @Override 
     public void onMouseMove(MouseMoveEvent event) { 
      //do something 
     } 
     @Override 
     public void onMouseWheel(MouseWheelEvent event) { 
      //do something 
     } 
    }, ???); 

Что бы ??? быть? Я пробовал такие вещи, как MouseEvent.getType(), но метода не было. Я попытался ввести несколько событий, таких как (MouseOverEvent.getType(), MouseOutEvent.getType()), но синтаксис - все неправильно. Каков правильный способ ссылки на все события мыши для HandlesAllMouseEvents()?

ответ

0

С HandlesAllMouseEvents - это интерфейс для нескольких типов событий, вы должны добавить каждый тип события в свой виджет, но повторно использовать тот же обработчик.

Widget spotlightPanel = [...] 

    HandlesAllMouseEvents mouseHandler = new HandlesAllMouseEvents(){ 
     public void onMouseDown(MouseDownEvent event) {} 
     public void onMouseUp(MouseUpEvent event) {} 
     public void onMouseMove(MouseMoveEvent event) {} 
     public void onMouseOut(MouseOutEvent event) {} 
     public void onMouseOver(MouseOverEvent event) {} 
     public void onMouseWheel(MouseWheelEvent event) {} 
    }; 

    spotlightPanel.addDomHandler(mouseHandler, MouseDownEvent.getType()); 
    spotlightPanel.addDomHandler(mouseHandler, MouseUpEvent.getType()); 
    spotlightPanel.addDomHandler(mouseHandler, MouseMoveEvent.getType()); 
    spotlightPanel.addDomHandler(mouseHandler, MouseOverEvent.getType()); 
    spotlightPanel.addDomHandler(mouseHandler, MouseWheelEvent.getType()); 
Смежные вопросы