2010-06-05 4 views
2

Dans mon programme GWT, j'ai une table qui a une ligne sélectionnée. Je voudrais déplacer la sélection de ligne avec les touches haut et bas du clavier. Donc, je dois attraper les événements clés en quelque sorte.Comment écouter les événements de clavier dans la table GWT?

Les documents GWT gèrent uniquement les événements clés dans les champs de saisie. Mais je n'ai pas de champ de saisie!

Est-ce possible? Peut-être qu'il est un DOM/restriction Javascript que GWT ne peut pas travailler autour ...

Répondre

2

Il fonctionne en utilisant Event.addNativePreviewHandler(NativePreviewHandler handler)

Mais il y a des choses à considérer:

  • Le gestionnaire ne se limite pas à un widget. C'est global pour votre application. Si vous changez de widgets, vous devrez peut-être enregistrer et désinscrire manuellement le gestionnaire.
  • Il existe des différences de navigateur avec les événements de clavier. Certains navigateurs envoient keyDown- et keyPress-Events, d'autres juste keyDown-Events.

Pour contourner la deuxième question, vous pouvez obtenir le nom du navigateur en utilisant ce code:

private static native String getUserAgent() /*-{ 
    return navigator.userAgent.toLowerCase(); 
}-*/; 
Questions connexes