Собственное событие GWT не обеспечивает предполагаемое поведение - PullRequest
2 голосов
/ 26 октября 2010

У меня есть текстовый виджет, в котором я хочу, чтобы событие enter действовало как событие табуляции. поэтому я фиксирую событие нажатия клавиши и поднимаю собственное событие с вкладкой.

Однако поведение вкладки не отражено в приложении. Код для обработчика событий:

   public void onKeyPress(KeyPressEvent event) { 
            int keyCode = event.getNativeEvent().getKeyCode(); 
            if (keyCode == KeyCodes.KEY_ENTER) { 
               NativeEvent nativeEvent = 
               Document.get().
                 createKeyPressEvent(false,false,false,false,KeyCodes.KEY_TAB ); 
               DomEvent.fireNativeEvent(nativeEvent, this, this.getElement()); 
            } 

Когда я использую устаревший метод createKeyPressEvent с большим количеством аргументов, он запускает событие табуляции, но поведение не соответствует нажатию клавиши табуляции, которое должно перейти к следующему виджету. Новый код отличается от приведенного выше кода в строке события createKeyPress следующим образом

     NativeEvent nativeEvent = 
       Document.get().
         createKeyPressEvent(false,false,false,false,
                      KeyCodes.KEY_TAB ,KeyCodes.KEY_TAB);

1 Ответ

1 голос
/ 27 октября 2010

Обратите внимание, что запуск события вручную не генерирует действие по умолчанию связано с этим событием. За Например, ручное срабатывание события фокуса не заставляет элемент получать фокус (вы должны использовать его метод фокусировки для этого), вручную увольняя представить событие не отправляет форму (используйте отправить метод), вручную запуская ключ событие не вызывает это письмо появиться в фокусе ввода текста, и вручную запустить событие клика на ссылка не приводит к тому, что ссылка будет активирован и т. д. В случае UI события, это важно для безопасности причины, так как это мешает сценариям моделирование действий пользователя, которые взаимодействуют с самим браузером.

С http://www.howtocreate.co.uk/tutorials/javascript/domevents.

...