IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SWT/JFace Java Discussion :

Récupérer bean sur un mouseEvent


Sujet :

SWT/JFace Java

  1. #1
    Membre éclairé Avatar de bruman
    Inscrit en
    Juin 2005
    Messages
    566
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juin 2005
    Messages : 566
    Points : 794
    Points
    794
    Par défaut Récupérer bean sur un mouseEvent
    Bonjour,

    j'ai une tableViewer dans laquelle j'affiche des objet de type xxxxBean.

    En mettant un listener sur le tableViewer avec un simple clic, j'arrive à récupérer un objet de l'event que je catch en xxxxBean.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    testTbl.addSelectionListener( new SelectionListener() {
     
                public void widgetSelected( SelectionEvent pEvent ) {
     
                    Object lObject = pEvent.item.getData();
     
                    if ( lObject instanceof xxxxBean ) {
                        //Code exécuté
                    }
    }
    Je voudrais faire la même chose mais sur un double clic. J'ai donc ajouté un listener MouseListener mais impossible de récupérer la sélection faite par le double clic dans la table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    testTbl.addMouseListener( new MouseListener() {
                public void mouseDoubleClick(MouseEvent pEvent) {
                    Object lObject = pEvent.??????
    
                    if ( lObject instanceof xxxxBean ) {
                        //Code a exécuter
                    }
                }
                public void mouseDown(MouseEvent e) {}
                public void mouseUp(MouseEvent e) {}
            });
    Je n'arrive pas à trouver quoi mettre à la place des ????? pour que ca fonctionne.

    Est ce que j'utilise le bon listener? Y-a-t-il un moyen autre pour récupérer l'objet sur lequel on a cliqué deux fois?

    Merci.
    Le hardware est la partie de l'ordinateur qui prend les coups quand le software se plante.
    Théoriquement, ça fonctionne, sauf erreur....

  2. #2
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Salut,

    Si tu as un TableViewer pourquoi ne pas utiliser ses méthodes?
    Déjà pour récupérer la sélection de l'utilisateur, tu ajoutes un ISelectionChangedListener (via la méthode addSelectionChangedListener de ton TableViewer). Cela va te permettre de récupérer la sélection de l'utilisateur qui te donnera directement accès à tes objets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    myTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
     
        public void selectionChanged(SelectionChangedEvent event) {
            ISelection selection = event.getSelection();
            if (selection instanceof IStructuredSelection) {
                Object mySelectedObject = 
                    ((IStructuredSelection) selection).getFirstElement();
                ...
            }
        }
    });
    Ensuite, pour écouter les évènements de double clic, c'est la même histoire. Tu utilises un IDoubleClickListener que tu ajoutes grâce à la méthode addDoubleClickListener de ton TableViewer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    myTableViewer.addDoubleClickListener(new IDoubleClickListener() {
     
        public void doubleClick(DoubleClickEvent event) {
            // Tu récupères la sélection de la même façon:
            ISelection selection = event.getSelection();
            if (selection instanceof IStructuredSelection) {
                Object mySelectedObject = 
                    ((IStructuredSelection) selection).getFirstElement();
                ...
            }
        }
    });
    En plus, quand tu passes par de telles méthodes, si ta sélection est multiple, l'impact au niveau du code à modifier est minime...

    Voilà, à+
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

  3. #3
    Membre éclairé Avatar de bruman
    Inscrit en
    Juin 2005
    Messages
    566
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juin 2005
    Messages : 566
    Points : 794
    Points
    794
    Par défaut
    Parfait, c'est ce que je cherchais. Je cherchais des méthodes sur la table mais pas sur la tableViewer.

    Merci.
    Le hardware est la partie de l'ordinateur qui prend les coups quand le software se plante.
    Théoriquement, ça fonctionne, sauf erreur....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 39
    Dernier message: 17/06/2008, 18h08
  2. [AJAX] Récupérer paramètre sur POST dans une servlet
    Par _beber85 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 05/04/2006, 11h52
  3. Comment récupérer données sur DD de portable hs
    Par rond24 dans le forum Composants
    Réponses: 23
    Dernier message: 07/03/2006, 19h20
  4. récupérer valeur sur 4 chiffres
    Par Gary dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/02/2006, 11h10
  5. SNMP et MIB pour récupérer Vlan sur port d'un switch
    Par TigreRouge dans le forum Développement
    Réponses: 3
    Dernier message: 01/07/2004, 11h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo