2010-11-29 8 views

Respuesta

37

puede invalidar el método de la clase DialogBoxonPreviewNativeEvent():

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; 
     } 
    } 
} 
+0

gracias de antemano –

+0

fresco! Yo necesitaba eso. –

+1

el único problema es que se trata de un evento de vista previa, por lo que podría ser manejado por algún elemento secundario de diálogo. por ejemplo, las selecciones (ListBox) se cierran con esc, etc. en estos casos, uso dup de CellBasedWidgetImpl # isFocusable para verificar event.getNativeEvent(). getTarget(). cast(). –

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

    return true; 
} 
+1

método por desgracia está en desuso, no puedo usarlo –

Cuestiones relacionadas