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 :

Comment connaître le plugin qui utilise une extension ?


Sujet :

Eclipse Platform

  1. #1
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut Comment connaître le plugin qui utilise une extension ?
    Bonjour,

    J'ai un petit soucis de plugin et je ne trouve pas de réponses malgré mes recherches.
    Mon plugin A propose un appel à une méthode Toto via un point d'extension. J'ai 2 autres plugins B et C qui utilisent chacun leur propre extension pour utiliser la méthode Toto issue de A.

    Dans mon plugin A, en listant les elements (extPt.getConfigurationElements()) j'arrive à connaître tous les plugins accédant à cette méthodes, les "contributors". Par contre, je n'arrive pas à savoir qui appelle à un instant T la méthode toto.

    En gros j'ai B-->Toto, C--> Toto

    Mais quand j'appelle Toto dans mon plugin B, je voudrais pouvoir afficher dans mon plugin A "La méthode Toto a été appelée par B" et de la même manière, quand C apelle la méthode Toto, je voudrai que A sache que "La méthode Toto a été appelée par A".
    Quelqu'un pourrait-il m'aider afin de pouvoir reconnaitre qui appelle la méthode car j'effectue un traitement différent dans A selon que ce soit B ou C qui va l'appeler (en fait aller lire tel ou tel fichier).

    J'avoue que c'est pas facile à expliquer, n'hésitez pas à me demander plus d'informations.

    Merci d'avance.
    Contrec

  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 : 40
    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,

    Tu peux éventuellement ajouter un identifiant à ton extension. Tu ajoutes une extension à ton plugin.xml et tu peux ensuite donner un nom et ID à ton extension. Ex:
    Code Xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <extension
             id="id.test"
             name="Menus"
             point="org.eclipse.ui.menus">
    </extension>
    Tu peux ensuite récupérer ces informations quand tu obtiens tes IExtension.

    Sinon, si tu as absolument besoin de cette info, pourquoi ne pas ajouter un champ avec l'ID du plug-in appelant?

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

  3. #3
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Et bien si je rajoute un ID de l'appelant, je fais quand même avoir la liste de mes extensions et non l'extension utilisés.

    Lorsque B et C appellent Toto, dans mon Extension registry, j'ai les 2 extensions. Je n'arrive pas à récupérer celle qui est utilisée :

    B appelle Toto, comment savoir que c'est B qui a appelé Toto puisque j'ai toujours la même liste ?
    Même si je rajoute un ID à mon extension, j'aurai quand même les 2 IDs correspondants à mes 2 extensions...

    C'est ce que je ne comprends pas dans ce système de plugin. Si jamais 15 plugins possèdent des extensions à Toto, quelque soit le plugin appelant (le contributeur) je ne peux avoir accès qu'à la liste des 15 extensions et je ne peux pas savoir laquelle a déclenché l'appel...
    Contrec

  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 : 40
    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
    A mon avis, tu as un problème de conception quelque part... Ou alors, j'ai loupé une étape.
    Avec un point d'extension, AMHA, ce n'est pas le plug-in hôte du point d'extension qui doit avoir un comportement qui se plie à l'appelant, c'est plutôt le plug-in "appelant" qui doit changer son exécution pour être conforme à son besoin...
    D'après moi, tu devrais plutôt exprimer ce que tu veux que ton point d'extension te permette de faire, plutôt que de chercher à savoir si c'est le plug-in B qui a appelé ton point d'extension (je vois d'ailleurs pas comment tu fais..).
    Enfin, ce n'est que mon avis sur la question. Si quelqu'un de plus expérimenté passe dans le coin et comprend ce que tu veux faire, je suis preneur

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

  5. #5
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Je ne pense pas que tu aies loupé une étape. C'est moi qui ai un soucis de conception avec ces points d'extensions. J'avais une idée de fonctionnement erronée.

    Du coup, je vais essayer de changer mon architecture pour que le plugin reste générique quel que soit son contributeur.

    PS: Pour la raison de ses questions, je suis débutant en Eclipse RCP et nous avons quelques applications déjà codées (par d'autres personnes) que nous essayons de restructurer en plugins (le log, un module snmp, un serveur ftp etc...). Et vu que nous ne pouvons pas tout re-coder, nous aeeayons de faire la migration vers des plugins en changeant le moins possible le code existant. Et parfois ça crée des soucis.

    Merci pour vos réponses.
    Contrec

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

Discussions similaires

  1. Comment créer un bloc qui utilise une fonction MATLAB
    Par Suzuki3694 dans le forum Simulink
    Réponses: 6
    Dernier message: 18/07/2011, 09h54
  2. Réponses: 2
    Dernier message: 13/06/2011, 16h29
  3. Plugin qui utilise une "CRON table"
    Par ego dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 18/10/2009, 17h32
  4. Réponses: 6
    Dernier message: 30/05/2005, 10h53
  5. [Thread] comment arreter un thread qui execute une methode b
    Par Cyber@l dans le forum Concurrence et multi-thread
    Réponses: 8
    Dernier message: 04/08/2004, 10h51

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