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

Eclipse Platform Discussion :

Détecter si Eclipse a le focus


Sujet :

Eclipse Platform

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 53
    Points : 24
    Points
    24
    Par défaut Détecter si Eclipse a le focus
    Bonjour,

    Je souhaite savoir commet faire pour détecter si la fenêtre d'Eclipse a le focus ou non avec addFocusListener.
    Ce code serait à mettre dans mon plugin d'Eclipse.
    La méthode s'applique à des component donc je ne sais pas quel composant récupérer de mon plugin.
    Si vous avez une idée...

    Merci !

    Go

  2. #2
    Membre averti Avatar de Jean-Philippe Shields
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2005
    Messages : 278
    Points : 340
    Points
    340
    Par défaut
    Les vues des plugins d'Eclipse possèdent une fonction héritée : setFocus() qui est appelée automatiquement lorsque l'usager donne le focus à ta vue.
    RCP rulez!

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 53
    Points : 24
    Points
    24
    Par défaut
    Est ce que setFocus est valable pour signaler si toute la fenêtre d'Eclipse a le focus ou non?
    J'essaie de le faire dans ma classe Activator en implémentant IWorkbenchPart mais je n'arrive pas à comprendre comment activer le listener.
    Quel listener faut-il utiliser ?

    Merci de ta réponse.

    Go

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 53
    Points : 24
    Points
    24
    Par défaut
    A l'activation de mon plugin sous Eclipse, j'instancie la classe suivante.
    Je peux uniquement placer un addFocusListener sur le shell et pas sur le Workbench complet.
    Or pour détecter si la fenêtre entière d'Eclipse a le focus il me faut appliquer le addFocusListener sur le Workbench.
    Avez vous une idée ?

    Le code ci-après déclenche focusGained et focusLost après avoir réduit puis agrandit ma fenêtre d'Eclipse. D'ailleurs je ne sais pas pourquoi ça déclenche ces 2 evenements.

    Bref, dans tous les cas il faudrait appliquer addFocusListener à la fenêtre principale !! grr

    Si tu as une idée ou non fais moi signe.
    Merci d'avance !

    Go



    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    package plugin.actions;
     
    import org.eclipse.swt.events.FocusEvent;
    import org.eclipse.swt.events.FocusListener;
    import org.eclipse.swt.widgets.Control;
    import org.eclipse.ui.IWorkbenchWindow;
    import org.eclipse.ui.PlatformUI;
     
    public class FocusDetection implements FocusListener
    {
     
    	private IWorkbenchWindow window;
     
    	public FocusDetection ()
    	{
    		System.out.println("HELLO");
    		window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
     
    		System.out.println("window : " + window);
    		window.getShell().addFocusListener(this);
    	}
     
     
    	public void focusGained(FocusEvent e) {
    		// TODO Auto-generated method stub
    		System.out.println("GAIN : " + e);
     
    	}
     
     
    	public void focusLost(FocusEvent e) {
    		// TODO Auto-generated method stub
    		System.out.println("LOST : " + e);
     
    	}
     
     
    }

  5. #5
    Membre averti Avatar de Jean-Philippe Shields
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2005
    Messages : 278
    Points : 340
    Points
    340
    Par défaut
    Après avoir relu ton post, je crois que tu es dans la bonne direction, mais j'me demande bien pourquoi t'as besoin de savoir si la fenêtre d'Eclipse à le focus ou pas. Il y a peut-être une manière plus simple d'arriver à tes fins.
    RCP rulez!

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 53
    Points : 24
    Points
    24
    Par défaut
    Merci de ta réponse !

    Oui il y a une autre solution c'est de détecter l'application qui a le focus avec GetForegroundWindow mais pour mon utilisation ce n'est pas l'idéal...

  7. #7
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 53
    Points : 24
    Points
    24
    Par défaut
    Merci de m'avoir répondu! Tu mérites d'avoir une réponse !

    Bon faut passer par la classe OS !
    Pour connaitre la fenêtre qui a le focus : OS.GetForegroundWindow().

    Voilà.
    ++

    Go

Discussions similaires

  1. Détecter changement de focus
    Par Goduak dans le forum C#
    Réponses: 1
    Dernier message: 17/04/2007, 09h22
  2. Réponses: 6
    Dernier message: 15/02/2007, 11h56
  3. Détecter si un élement à la focus
    Par sokette dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/03/2006, 10h52
  4. Comment détecter la perte de focus d'une fenêtre
    Par Leviathan_72 dans le forum Windows
    Réponses: 5
    Dernier message: 31/12/2005, 00h22
  5. [eclipse][plugin] Comment avoir une fenêtre avec focus
    Par relivio dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 07/04/2004, 15h54

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