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 :

Tester la présence d'un plugin


Sujet :

Eclipse Platform

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 6
    Points : 11
    Points
    11
    Par défaut Tester la présence d'un plugin
    Bonjour à tous,

    Je développe une application RCP contenant plusieurs plugins.

    Mon souci est que j'aimerais modifier mon interface au chargement en fonction des plugins intégrés au projet.

    Je m'explique : J'ai une vue X composée de 5 onglets dans mon plugin Y et j'aimerais lui ajouter un 6eme onglet provenant d'un plugin Z.
    Donc il faut que je vérifie à partir du code si le plugin Z est présent pour charger son onglet.

    Quelqu'un saurait-il m'expliquer comment procéder ?

    Merci pour votre aide.

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

    A mon avis, tu n'adoptes pas une philosophie "propre à Eclipse".
    Je m'explique. Je pense qu'il vaudrait mieux pour toi définir un point d'extension dans ton plug-in A définissant la vue en question (tu ouvres le MANIFEST.MF avec l'éditeur de MANIFEST et tu vas dans l'onglet "Extension Point" et là tu cliques sur "Add...").
    Dans ce point d'extension, tu définis un attribut "class" qui prend comme paramètre une interface que tu as défini dans ton plug-in A (et qui est visible des autres plug-ins). Cette interface définit au moins une méthode qui te permet de récupérer la représentation de son onglet, son titre, ...
    Ensuite, tu implémentes ce point d'extension dans ton plug-in B ainsi que la classe qui va bien.
    Puis dans ton plug-in A, tu crées une classe utilitaire qui va te permettre de récupérer toutes les extensions de ton point d'extension et ainsi récupérer tout les onglets à ajouter à ta vue. Du coup, tu as un comportement un peu plus "long" à mettre en place mais qui te permet une bien meilleure modularité et une meilleure possibilité d'évolution
    Pour récupérer tes extensions de ton point d'extension, c'est facile, il te suffit de faire comme suit:
    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
        IExtensionPoint extensionPoint =
            Platform.getExtensionRegistry().getExtensionPoint("my.extension.point.id");
        if (extensionPoint != null) {
            // On retrouve toutes les extensions de notre point d'extension:
            IExtension[] extensions = extensionPoint.getExtensions();
            for (IExtension ext : extensions) {
                // Il reste à parcourir les éléments de configuration:
                IConfigurationElement[] elements =
                    ext.getConfigurationElements();
                for (int i = 0; i < elements.length; i++) {
                    if ("extension.name".equals(elements[i].getName())) {
                        // Comme on souhaite instancier la classe définie dans l'attribut
                        // on essaye d'en créer une instance.
                        Object created =
                            createExecutableExtension("class",
                                elements[i]);
                    }
                }
            }
        }
    où "my.extension.point.id" correspond à l'identifiant du point d'extension et "extension.name" au nom de l'extension.

    Voilà, si t'as des questions... n'hésite pas.
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 6
    Points : 11
    Points
    11
    Par défaut Re
    Salut à toi,
    Merci pour ta réponse. Je viens justement de tomber sur un article concernant ta méthode . Donc j'essaye de l'implémenter et je te reviens si j'ai d'autres soucis.

    Bonne soirée à toi

Discussions similaires

  1. tester la présence des parametres
    Par Delphi-ne dans le forum Langage
    Réponses: 3
    Dernier message: 05/10/2005, 20h51
  2. VBA - Tester la présence d'un composant
    Par n1portki dans le forum Général VBA
    Réponses: 1
    Dernier message: 20/09/2005, 05h18
  3. Comment tester la présence de machine ?
    Par bluesnr dans le forum Web & réseau
    Réponses: 9
    Dernier message: 22/04/2005, 17h20
  4. [JSP]Tester la présence d'un attribut
    Par StagiaireEnGalère dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 08/02/2005, 09h35
  5. Réponses: 11
    Dernier message: 02/04/2004, 18h33

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