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 :

Interaction vue Debug


Sujet :

Eclipse Platform

Vue hybride

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 96
    Par défaut Interaction vue Debug
    Bonjour,

    Dans le cadre d'un projet de visualisation, je dois écouter les évènements du debugger d'Eclipse lors de la maintenance d'un programme.

    J'arrive sans soucis à capter tous les évènements du debugger, mais ce que j'aurai voulu savoir, c'est s'il était possible lorsque je clic, par exemple, sur un thread dans la view debug, de pouvoir catcher l'évènement du clic avec l'objet sélectionné.

    Ceci a pour but de ne pas répliquer les informations donnée par cette vue car elle me convient parfaitement. J'ai essayé de me voir au niveau des extensions ui du debbuger, mais je dois dire que je suis un débutant au niveau de la création de plug-in.

    Est-ce que quelqu'un aurait une idée du comment faire ?

    Merci bien

    Dasson

  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 : 41
    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
    Par défaut
    Salut,

    Selon moi, il te suffit d'utiliser le service de sélection.
    Donc, ce qu'il te faut faire revient à ajouter un listener de sélection sur la vue de debug:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ISelectionService selectionService = (ISelectionService) PlatformUI.getWorkbench()
    	.getActiveWorkbenchWindow().getService(ISelectionService.class);
    if (selectionService != null) {
    	selectionService.addSelectionListener(
    		IDebugUIConstants.ID_DEBUG_VIEW, new ISelectionListener() {
     
    			@Override
    			public void selectionChanged(IWorkbenchPart part, ISelection selection) {
    				if (selection instanceof IStructuredSelection) {
    					System.out.println(((IStructuredSelection) selection).getFirstElement());
    				}
    			}
    	});
    }
    Voilà, à+
    Gueritarish

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 96
    Par défaut
    Merci pour ta réponse.

    Je viens d'essayer, mais la méthode getActiveWorkbenchWindow() me retourne à chaque fois null, donc j'obtiens toujours un NullPointerException à la sortie.
    En regardant la doc de cette méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Returns the currently active window for this workbench (if any). Returns null if there is no active workbench window. Returns null if called from a non-UI thread.
     
    Returns:
    the active workbench window, or null if there is no active workbench window or if called from a non-UI thread
    Cela voudrait dire que ma vue Debug n'est pas présente dans mon workbench ?
    Ou bien qu'elle n'est pas active ? En sachant que ce code est appelé par un listener qui rafraichit une JPanel.

    Merci bien.

    Dasson

  4. #4
    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 : 41
    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
    Par défaut
    Salut,

    Returns:
    the active workbench window, or null if there is no active workbench window or if called from a non-UI thread
    Essaye déjà d'appeler cette méthode dans le thread UI SWT. Ça devrait beaucoup mieux marcher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Display.getDefault().asynchExec(new Runnable() {
        public void run() {
            IWorkbenchWindow activeWorkbench = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
        }
    });
    Voilà, à+
    Gueritarish

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 96
    Par défaut
    Ho nice, merci beaucoup, ça marche nickel maintenant.

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

Discussions similaires

  1. [RCP] interaction entre les vues
    Par stachus dans le forum Eclipse Platform
    Réponses: 7
    Dernier message: 14/09/2007, 15h01
  2. [EJB3] interaction EJB avec vue/controleur
    Par ®om dans le forum Java EE
    Réponses: 7
    Dernier message: 27/02/2007, 14h20
  3. [RCP] Interaction entre les vues
    Par MarneusCalgarXP dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 10/10/2006, 22h52
  4. [MVC] Interactions vue/model
    Par zoullou dans le forum Général Java
    Réponses: 6
    Dernier message: 02/05/2006, 15h28
  5. [RCP] Interaction avec des vues
    Par alexixlebaulois dans le forum Eclipse Platform
    Réponses: 4
    Dernier message: 11/01/2006, 17h57

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