как заменить код ключа другим в рамках vaadin? - PullRequest
0 голосов
/ 04 января 2012

Мне нужно установить клавишу ВВОДА для перемещения между включенными полями, размещенными на com.vaadin.ui.Panel. Как я могу программно сделать это?

Это мое намерение, но не сейчас, как отправить нажатие клавиши:

Action ENTER_KEY_ACTION = new ShortcutAction(
         "Enter key"
        , ShortcutAction.KeyCode.ENTER
        , null
        );

public Action[] getActions(Object target, Object sender) {
    return new Action[] { ENTER_KEY_ACTION};
}

public void handleAction(Action action, Object sender, Object target) {
    if (action == ENTER_KEY_ACTION ) {
        ENTERKeyHandler();
    }
}

protected void ENTERKeyHandler(){
   //
   //here i need to send a TAB keyPress
   //
}

этот код прекрасно работает до сих пор, но не закончен. Я не знаю, есть ли другой способ сделать это? прошу прощения, мой английский тоже.

Ответы [ 2 ]

0 голосов
/ 05 января 2012

Попробуйте добавить FocusListener к вашим полям в Panel, который отслеживает текущее сфокусированное поле. Вы также должны знать порядок табуляции полей на стороне сервера и в методе ENTERKeyHandler (), который вы вызываете field.focus () для поля, которое нужно сфокусировать.

0 голосов
/ 04 января 2012

Класс AbstractComponent предоставляет метод для этого (Ваш объект поля расширяет AbstractComponent). Метод называется fireEvent (событие Component.Event) .

При таком подходе вы можете попробовать отправить событие зарегистрированным слушателям.

...