2010-07-29 5 views
1

Je suis en train d'ajouter des raccourcis clavier à un menu GWT, comme dans la plupart des applications Windows (par exemple ALT + F, puis O -> Active le menu "Fichier", puis "Ouvrir" MenuItem).Est-il possible d'ajouter des touches de raccourci pour les éléments MenuBar/MenuItem dans GWT?

Je sais que cela peut entrer en conflit avec les raccourcis du navigateur, donc je suis intéressé par un moyen de désactiver les trop ...

D'après ce que je peux voir Google a toutes sortes de raccourcis dans leurs applications ainsi, il faut être un moyen de le faire.

Merci!

Modifier

Merci à la réponse Igor Je suis en mesure de saisir l'entrée du clavier avant d'être consommée par d'autres contrôles. Ce que je ne sais pas est comment faire apparaître le MenuBar lui-même (comme lorsque le survol de la souris). MenuBar ne semble pas avoir une méthode .Open() :(

Répondre

2

Je n'ai pas vraiment essayé, mais NativeEvent semble être ce que vous cherchez, vous obtenez via Event.addNativePreviewHandler(Event.NativePreviewHandler).

Event.addNativePreviewHandler(new Event.NativePreviewHandler() { 
    @Override 
    public void onPreviewNativeEvent(Event.NativePreviewEvent event) { 
     nativeEvent nativeEvent = event.getNativeEvent(); 
     // Do all sort of cool stuff with nativeEvent 
    } 
}); 

Référence:. GWT Google Group thread


pour sélectionner un élément de menu programatically, utilisez MenuBar.selectItem(MenuItem item) - vous aurez probablement besoin de garder une trace des MenuItem pertinentes s de la MenuItem sélectionnée peut accéder à son sous-menu via MenuItem.getSubMenu() et ainsi de suite ... :) Vous pouvez jouer avec le réglage d'ouverture automatique (MenuBar.setAutoOpen(boolean autoOpen) pour le faire fonctionner comme vous l'aviez prévu.

+0

Merci, cela me pointe dans la bonne direction. Semble fonctionner correctement sur Firefox, mais comme d'habitude IE est une chienne à nouveau. Ne déclenche pas d'événements pour les clés "spéciales" (comme ALT, CTRL). – Bogdan

+0

Vous voulez dire quand * seulement * Alt est pressé? Pour les combinaisons avec d'autres clés, 'getAltKey()' devrait fonctionner. –

+0

Non. Dans IE, ALT + i ou CTRL + i ne fonctionne pas. Juste "je" fonctionne, cependant. Pour ce dont j'ai besoin maintenant je peux vivre avec un raccourci direct (sans Alt, ou Ctrl). – Bogdan

Questions connexes