Comment voulez-vous ajouter une ligne auditeur à un Flextable dans GWT?
Comment voulez-vous ajouter une ligne auditeur à une ligne spécifique, ou toutes les lignes dans une table? J'ai besoin d'ajouter un type de "onMouseOver" port d'écoute pour les lignes de sorte que lorsque vous passez la souris au-dessus d'eux, il change la couleur de fond de la ligne, à l'instar de getRowFormatter vous permettront de le faire.
OriginalL'auteur Organiccat | 2009-03-27
Vous devez vous connecter pour publier un commentaire.
Supposant GWT 1.5.3:
CLIQUEZ SUR GESTION DES ÉVÉNEMENTS
Si vous utilisez
FlexTable
et que vous vouliez un gestionnaire d'événements click, vous pouvez utiliser leFlexTable.addTableListener()
et d'enregistrer votre propreTableListener
. LeTableListener
objet aurez besoin pour mettre en œuvre lesonCellClicked
de rappel qui vous donne le numéro de ligne.D'AUTRES ÉVÉNEMENTS de MANIPULATION (p. ex. HOVER)
Si vous avez besoin de gérer d'autres types de manifestations autres que la souris (dire, pointage), GWT ne dispose pas actuellement d'un prêt de l'interface. Vous avez assez bien à gauche sur votre propre pour les mettre en œuvre vous-même. Il y a deux façons de le faire que je peux penser maintenant:
La façon rapide et sale, c'est probablement par l'exploitation de JSNI, ce qui fournit un moyen pour vous d'injecter du code Javascript dans votre code GWT. Je n'ai pas utilisé beaucoup JSNI (en dehors de vraiment dur de solutions de contournement qui ne vaut pas l'effort de l'écrire dans le plus pur GWT) dans mon code donc je ne peux pas vous montrer un exemple; mais, franchement, je ne le recommande pas, car elle réduit la maintenabilité et de l'extensibilité.
Si vous vouliez à l'origine d'un interface GWT, vous pouvez créer une nouvelle classe qui hérite de HTMLTable ou FlexTable. Dans le constructeur, appelez le
sinkEvents
fonction de votre besoin événements. (par exemple, pour planer, vous aurez probablement besoin sinkEvents(Événement.ONMOUSEOVER)). Ensuite, vous aurez besoin de la onBrowserEvent fonction qui gère le passage de la souris.Rapidement un modèle de la façon dont le code devrait ressembler à:
Le meilleur d'apprendre à coder c'est en regardant le GWT code source lui-même (recherche de
sinkEvent
) et de se sentir sur la façon de faire les GWT.Je l'ai, j'ai oublié de référence de la table, a été d'essayer de tirer de la table parent de la cellule, oups :p
OriginalL'auteur Seh Hui Leong
OriginalL'auteur Nikolay
Je l'ai trouvé beaucoup plus simple pour ajouter du code javascript directement à l'élément TR. Mon code suppose que les widgets DOM parent est un TD et le grand-parent est le TR de sorte que vous devez être sûr que vous savez que votre DOM.
Voici mon code. Agréable et simple, sans JSNI ou GWT DOM gestion d'événements requis.
TableRowElement rowElement = (TableRowElement) case à cocher.getElement().getParentElement().getParentElement();
rowElement.setAttribute("onMouseOver", "cette.className='" + importRecordsResources.css().normalActive() + "'");
rowElement.setAttribute("onMouseOut", "cette.className='" + importRecordsResources.css().normal() + "'");
Mieux d'apprendre à GWT et UiBinder à effet de levier cadre.
OriginalL'auteur Steve Buikhuizen
Je l'ai juste fait cette façon simple:
Vous appelez cette méthode de cellules que vous souhaitez être cliquable
Cordialement,
Zied Hamdi
OriginalL'auteur Zied Hamdi