2012-08-31 1 views
2

J'utilise une table de cellules gwt pour afficher les résultats de la recherche .. J'ai deux colonnes où j'affiche du texte lié à la recherche et j'ai une colonne avec une flèche image et quand je clique dessus je devrais pouvoir ouvrir une boîte de dialogue et la placer juste à côté de l'image cliquée. Sur la colonne cliquez sur Je suis capable de montrer une boîte de dialogue mais je ne suis pas en mesure de trouver un moyen de déterminer la position exacte de l'image cliquée afin que je puisse placer juste à côté .. La fonctionnalité attendue est quelque peu similaire à ce qui se passe lorsque nous passons la souris sur la flèche sur la page de recherche google .... S'il vous plaît aider ....Comment obtenir la position de l'image cliquée dans une table gwt

+0

Jetez un oeil à la mise en œuvre du DateBoxCell, qui est similaire (placez le calendrier pop-up juste à côté de la date cliqué) –

+0

GWT n'a pas DateBoxCell..They aurait remplacé avec DatePickerCell et j'ai vu l'implémentation de celui-ci et ils ont utilisé absolute left et absolute comme suit: panel.setPopupPosition (lastParent.getAbsoluteLeft() + offsetX, lastParent.getAbsoluteTop() + offsetY); Ma question est comment puis-je trouver le haut à gauche absolue et absolue de l'image qui est présente dans une colonne cliquée ... – Saritha

+0

Désolé, mon mauvais, signifiait DatePickerCell, pas DateBoxCell. Et pour répondre à votre question, comment se fait-il que DatePickerCell découvre le top absolu à gauche et le top absolu? Tu ne peux pas faire la même chose? –

Répondre

4

Vous avez juste besoin de faire cela. Mais, seulement pour textCell. Je pense que vous savez comment utiliser cet échantillon pour votre cas.

column.setFieldUpdater(new FieldUpdater<Type, String>() {     
       @Override 
       public void update(int index, Type object, String value) { 
        int x = cellTable.getRowElement(index).getCells().getItem(columnNumber).getAbsoluteLeft(); 
        int y = cellTable.getRowElement(index).getCells().getItem(columnNumber).getAbsoluteTop(); 
        popupPanel.setPopupPosition(x, y); 
        popupPanel.show(); 
       } 
      });  
Questions connexes