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 :

[JFACE]Récupérer ligne du tableviewer qui se trouve sous le curseur


Sujet :

SWT/JFace Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut [JFACE]Récupérer ligne du tableviewer qui se trouve sous le curseur
    Bonjour,

    Dans le cadre d'une application que je développe, je devrais afficher une fenêtre en pop-up lorsque le curseur reste plus de 3secondes au dessus d'une ligne d'un tableviewer. (comme un tooltip en fait, mais qui afficherait plus d'informations sur la ligne).

    Je pensais donc utiliser un petit timer qui m'ouvrirait mon pop-up lorsque le curseur rentre dans la zone ou se trouve le tableviewer.

    Pour réaliser le timer je pense que je vois comment faire, par contre je ne vois pas du tout comment récupérer la ligne qui se trouve sous le curseur...

    Quelqu'un pourrait-il m'apporter des précisions/ un exemple p-e ?

    Merci beaucoup,

  2. #2
    Rédacteur

    Avatar de Mickael Baron
    Homme Profil pro
    Ingénieur de Recherche en Informatique
    Inscrit en
    Juillet 2005
    Messages
    14 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche en Informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 14 974
    Par défaut
    Salut,

    TableViewer encapsule le composant Table de SWT. Par ailleurs, Table peut réagir à toute sorte de d'événements (mouseMove notamment).

    Je te conseille donc de placer un écouteur sur le déplacement de la souris dont la source est la Table. Tu récupère la ligne à partir du curseur souris (getItem(Point p)) et tu lances ton timer.

    Je te conseille d'encapsuler tout cela dans un nouveau composant du style TableViewerExt.

    Mickael
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Ingénieur de Recherche en informatique au LIAS / ISAE-ENSMA
    Page de Developpez.com : mbaron.developpez.com
    Twitter : www.twitter.com/mickaelbaron
    Blog : mickael-baron.fr
    LinkedIn : www.linkedin.com/in/mickaelbaron
    DBLP : dblp.uni-trier.de/pers/hd/b/Baron:Micka=euml=l

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    Salut Mickael,

    Merci pour tes explications.
    J'ai encore 2/3 petits trucs à paufiner dans mon programme ensuite je tenterai la méthode que tu me proposes et je posterai un feedback (...ou un appel à l'aide )
    Je laisse le thread ouvert en attendant.

    Je voudrais aussi profiter de l'occasion pour te remercier personnellement pour les nombreux et excellents supports de cours que tu as publié. Ils m'ont souvent servi et bien aidé.

  4. #4
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Par défaut
    Citation Envoyé par pssst Voir le message
    Je voudrais aussi profiter de l'occasion pour te remercier personnellement pour les nombreux et excellents supports de cours que tu as publié. Ils m'ont souvent servi et bien aidé.
    Sans vouloir polluer le forum, j'en profite également pour remercier mbaron pour ces excéllents tutoriels. Jne manque pas de les citer quand l'occasion se présente.

  5. #5
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Par défaut
    Bonjour à tous et désolé de m'incruster dans la discussion.

    Ce que désire faire pssst m'intéresse beaucoup, car j'envisage faire quelque chose de semblable. Pouvez vous s'il vous plaît, poster des exemple de lignes de codes pour que je puisse mieux voir et surtout comprendre comment vous le faites.

    Merci

  6. #6
    Membre chevronné Avatar de desert
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 414
    Par défaut
    Bonjour,
    Citation Envoyé par papaetoo
    Pouvez vous s'il vous plaît, poster des exemple de lignes de codes pour que je puisse mieux voir et surtout comprendre comment vous le faites.
    Voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    table.addListener(SWT.MouseMove, new Listener() {
     
        private Runnable timer = null;
     
        public void handleEvent(final Event e) {
            //Récupération du TableItem à la position du curseur
            TableItem item = table.getItem(new Point(e.x, e.y));
            //Si le TableItem existe
            if (item != null) {
                //On vérifie si il y avait déjà un timer lancé.
                //Si c'est le cas, on le stoppe
                stopTimer();
     
                //Et on en crée un nouveau.
                timer = new Runnable() {
                    public void run() {
                        System.out.println("Ouverture du popup");
                    }
                };
                display.timerExec(3000, timer);
            } else 
                stopTimer();
        }
     
        private void stopTimer() {
            if (timer != null)
                display.timerExec(-1, timer);
        }
    });
    PS: +1 pour les tutos de Mr. keulkeul !

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    Bon ben je pense que Monsieur keulkeul fait l'unanimité :-)

    Mais je propose un +1 pour désert aussi...eeeeh oui j'ai succombé à la tentation et après une brève analyse j'ai fait un gros copié-collé de ton code vu qu'il me parraissait OK
    ...on va dire que c'était pour la bonne cause, pour vérifier que le code posté était fonctionnel. Lol

    Vu que papaetoo dispose maintenant d'un exemple fonctionnel, je me permet de marquer le sujet comme "Résolu"

    Pour résumer, merci à tous ...et ça fonctionne!

  8. #8
    Rédacteur

    Avatar de Mickael Baron
    Homme Profil pro
    Ingénieur de Recherche en Informatique
    Inscrit en
    Juillet 2005
    Messages
    14 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche en Informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 14 974
    Par défaut
    Salut,

    Merci pour vos remerciements, n'hésitez pas à aller sur mon blog pour poster vos impressions (un petit peu de pub)

    J'ai malheureusement très peu de temps à consacrer à ce forum qui est à l'heure actuelle le seul forum d'entraide francophone sur les technologies Eclipse RCP. Par ailleurs, désolé de ne pas avoir mis de code ... sinon il n'y aurait pas de challenge

    Mickael
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Ingénieur de Recherche en informatique au LIAS / ISAE-ENSMA
    Page de Developpez.com : mbaron.developpez.com
    Twitter : www.twitter.com/mickaelbaron
    Blog : mickael-baron.fr
    LinkedIn : www.linkedin.com/in/mickaelbaron
    DBLP : dblp.uni-trier.de/pers/hd/b/Baron:Micka=euml=l

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    Salut,

    Ce ne sont que des compliments mérités.
    J'essayerai de passer sur le blog à l'occaz :-)

    En ce qui concerne l'absence de code, pas de soucis...on est d'accord sur la nécessité d'un minimum de challenge sur le forum (...mais les exemples tout fait j'avoue que parfois c'est confortable aussi )

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

Discussions similaires

  1. Comment declarer un fichier qui se trouve sous un chemin
    Par helkha86 dans le forum Programmation et administration système
    Réponses: 1
    Dernier message: 11/05/2012, 09h23
  2. Réponses: 2
    Dernier message: 08/05/2012, 13h39
  3. Réponses: 2
    Dernier message: 12/06/2006, 13h35
  4. Réponses: 9
    Dernier message: 09/12/2005, 14h39
  5. Réponses: 7
    Dernier message: 26/10/2004, 12h02

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