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 :

simuler un double clic sur un tableviewer


Sujet :

SWT/JFace Java

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 14
    Points : 16
    Points
    16
    Par défaut simuler un double clic sur un tableviewer
    Bonjour,

    Mon application éclipse RCP possède un TableViewer et son Table.
    Un doubleclick listener (qui implémente IDoubleClickListener) est installé sur le TableViewer.

    Je voudrais notifer l'événement doubleclick par du code.

    Si le listener était sur le Table, cela aurait fonctionné avec:
    maTable.notifyListeners(SWT.MouseDoubleClick, new Event());

    Mais dans mon cas ça ne marche pas, le TableViewer n'est pas notifié.

    Auriez-vous une piste pour notifier ce TableViewer?

    Merci d'avance

  2. #2
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 14
    Points : 16
    Points
    16
    Par défaut
    Il existe finalement une solution en passant par le Table:

    maTable.notifyListeners(SWT.DefaultSelection, new Event());

    Le DefaultSelection correspond à "double clic ou appuyer sur Entrer".
    Ca ne simule pas un vrai double clic mais plutôt une sorte de validation. Mais au moins ca marche.
    Cet évenement sera compris par le viewer et son IDoubleClickListener.

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Août 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2006
    Messages : 218
    Points : 305
    Points
    305
    Par défaut
    Salut,

    Une solution consiste à utiliser l'objet Display et la méthode post :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Display display = maTable.getDisplay();
    Point pt = display.map(maTable,null,50,30); // Calcul du point situé à 50 pixels à droite du coin sup. gauche de la droite et 30 pixels en dessous du coin sup. gauche de la table
    Event event = new Event();
    event.type=SWT.MouseMove;
    event.x = pt.x;
    event.y = pt.y;
    display.post(event); // Simule un déplacement de souris
     
    event = new Event();
    event.type=SWT.MouseDoubleClick;
    event.button = 1;
    display.post(event); // Simule un double clic
    Bon courage

    Laurent

Discussions similaires

  1. Simuler un double clic sur un fichier
    Par hamidap dans le forum ASP
    Réponses: 9
    Dernier message: 27/04/2009, 09h48
  2. Simuler un double-clic ou un F2 sur une JTable
    Par JamesP dans le forum Composants
    Réponses: 2
    Dernier message: 16/05/2007, 10h38
  3. ouverture d'un programme par double clic sur un fichier
    Par zieg18 dans le forum Visual C++
    Réponses: 6
    Dernier message: 12/07/2006, 10h02
  4. simuler un double click sur une liste dans un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 1
    Dernier message: 01/09/2005, 10h45
  5. comment autoriser le double clic sur un champ desactivé ?
    Par linou dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 28/04/2005, 17h23

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