J'essaie dans GWT de créer un arbre avec une sélection multiple pour les nœuds et ai rencontré un problème similaire à cette question Shift Key in GWT?. Quand un événement selectionEvent est levé à partir de l'arborescence, je voudrais savoir si la touche Shift est enfoncée ou non.Dans GWT, comment savoir à partir d'un événement SelectionEvent dans un arbre si le bouton Shift est enfoncé
SelectionHandler<TreeItem> getSelectionHandler() {
return new SelectionHandler<TreeItem>(){
@Override
public void onSelection(SelectionEvent<TreeItem> event) {
// is shift key pressed ?
}
};
}
La solution dans la question ci-dessus ne peut appliquer dans ce cas comme la classe SelectionHandler ne hérite pas de DOMEvent et n'a pas de fonction getNativeEvent().
J'ai essayé une solution sale en ajoutant keyDownEventHandler et keyUpEventHandler à l'arborescence avec un indicateur booléen, mais les gestionnaires ne sont appelés que lorsque le focus est sur l'arborescence, donc cela ne fonctionne pas.
Existe-t-il une solution simple (ou juste une solution même si ce n'est pas simple)? Merci.
Modifier sur la réponse aem: La solution peut travailler en enfermant les composants dans un FocusPanel avec un keyUp/DownHandler mais en tant que gestionnaire « global » prend je ne peux pas ajouter une entrée du clavier besoin de composants tels que TextArea la priorité ... Donc ça ne résout pas vraiment mon problème.
fonctionne parfaitement bien, merci :) – Vinze