Подтвердить что ты не робот

Закрыть диалоговое окно при нажатии ESCAPE (ESC) в GWT

Как я могу добавить что-то вроде addCloseHandler в диалоговое окно, которое закрывается при нажатии клавиши ESC?

4b9b3361

Ответ 1

Вы можете переопределить метод onPreviewNativeEvent() класса DialogBox:

public void onModuleLoad() {
    ExtendedDialogBox dialog = new ExtendedDialogBox();

    dialog.add(new Label("some content"));

    dialog.show();
}

private class ExtendedDialogBox extends DialogBox {

    @Override
    protected void onPreviewNativeEvent(NativePreviewEvent event) {
        super.onPreviewNativeEvent(event);
        switch (event.getTypeInt()) {
            case Event.ONKEYDOWN:
                if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ESCAPE) {
                    hide();
                }
                break;
        }
    }
}

Ответ 2

@Override
 public boolean onKeyDownPreview(char key, int modifiers) {
     switch (key) {
       case KeyCodes.KEY_ESCAPE:
         hide();
         break;
     }

     return true;
 }