Comment puis-je ajouter quelque chose comme addCloseHandler à la boîte de dialogue que pour fermer lorsque vous cliquez sur la touche Échap?fermer Boîte de dialogue lorsque vous cliquez sur ÉCHAP (ESC) dans GWT
25
A
Répondre
37
Vous pouvez remplacer la méthode onPreviewNativeEvent()
de la classe 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;
}
}
}
1
@Override
public boolean onKeyDownPreview(char key, int modifiers) {
switch (key) {
case KeyCodes.KEY_ESCAPE:
hide();
break;
}
return true;
}
+1
méthode est malheureusement dépréciée, je ne peux pas l'utiliser –
merci à l'avance –
Cool! j'avais besoin de ça. –
le seul problème est que ceci est un événement de prévisualisation afin qu'il puisse être manipulé par un enfant de dialogue. par exemple, select (ListBox) sont fermés avec esc, etc. Pour de tels cas, j'utilise dup de CellBasedWidgetImpl # isFocusable pour vérifier event.getNativeEvent(). getTarget(). cast(). –