Как добавить обработчик ключа в GWT FlexTable? - PullRequest
0 голосов
/ 18 июня 2010

Я пытаюсь изменить подсветку строки в моей FlexTable, используя KeyCodes.KEY_UP / DOWN.Это не похоже на работу (на основе 1809155 ):

public class KeyAwareFlexTable extends FlexTable 
      implements KeyDownHandler, HasKeyDownHandlers {
   public KeyAwareFlexTable() {
      this.addKeyDownHandler(this);
   }

   @Override
   public void onKeyDown(KeyDownEvent event) {
      GWT.log("onKeyDown");
      // check if up/down & do something useful
   }

   @Override
   public HandlerRegistration addKeyDownHandler(KeyDownHandler handler) {
      return addDomHandler(handler, KeyDownEvent.getType());
   }
}

Я также пробовал это (на основе этот сайт ):

FlexTable table = new FlexTable() {
  @Override
  public void onBrowserEvent(Event event) {
     super.onBrowserEvent(event);
     GWT.log("Event type = " + DOM.eventGetType(event));
     switch (DOM.eventGetType(event)) {
     case Event.ONKEYDOWN:
        if (DOM.eventGetKeyCode(event) == KeyCodes.KEY_UP) {
           GWT.log("up");
        } else if (DOM.eventGetKeyCode(event) == KeyCodes.KEY_DOWN) {
           GWT.log("down");
        }
        break;
     default:
        break;
     }
   }
};
table.sinkEvents(Event.ONKEYDOWN);

Я ищу способ такого поведения более или менее.У кого-нибудь есть способ сделать это в GWT?

1 Ответ

3 голосов
/ 18 июня 2010

Понял

  FocusPanel focus = new FocusPanel(flexTable);
  focus.addKeyDownHandler(new KeyDownHandler() {
     @Override
     public void onKeyDown(KeyDownEvent event) {
        int code = event.getNativeKeyCode();
        if (KeyCodes.KEY_UP == code) {
           GWT.log("Bed goes up");
        } else if (KeyCodes.KEY_DOWN == code) {
           GWT.log("Bed goes down");
        }
     }
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...