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éveloppement de plugin sous Eclipse


Sujet :

Eclipse Platform

  1. #1
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Août 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 30
    Points : 13
    Points
    13
    Par défaut Développement de plugin sous Eclipse
    Bonjour à tous,

    J'aimerai pouvoir créer un plugin java, qui me permet de faire du parsing xml. Ce qu'il y a de particulier c'est que je veux personnaliser l'exécution de la fonction du parsing, je veux ajouter un nouveau item sur le menu quand je clique droit sur le fichier xml (ajouter par exemple un item Parsing à côté de Run as, Debug as, Team ...etc).

    Savez vous comment le faire ?

    D'avance merci,

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Pour ajouter un menu, voir ce tutoriel de Lars Vogel.

    Si tu n'as jamais fait de plugin, tu peux regarder aussi les tutoriels suivant :


  3. #3
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Août 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 30
    Points : 13
    Points
    13
    Par défaut
    Merci joel.drigo,

    J'ai appliqué le tutoriel de Lars Vogel pour créer un menu contextuel, par contre au niveau de l'exécution de plugin je vois bien le nouveau élément Create HTML dans le menu et quand je clique dessus, ça m'ouvre juste un Browser pour chercher un fichier et quand je fais Ok, ça ne fait rien !

    quelqu'un peut m'aider ?

    D'avance merci

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Tu as dû regarder que le premier tutoriel, à priori, et il ne doit pas faire beaucoup plus que ce que tu décris. Le premier tutoriel explique les notions liées aux menus en général (menu, action, command, handler...), indique comment on configure ces notions dans les extensions, et donne un exemple basique d'application, avec un simple petit dialogue. Accessoirement, tu as une introduction à la mise en place d'un premier plugin en support du tutoriel, pour tester. Tu dois simplement mettre le code de ton parsing xml à la place du code qui affiche un dialogue (dans le handler).

    Le second tutoriel explique comment enrichir l'IDE, et en particulier comment s'interfacer avec pour manipuler des fichiers, qu'on voit dans le Package Explorer : comment associer un menu avec le fichier qu'on désire pour commencer (extension xml dans ton cas, peut-être d'autres conditions...), comment récupérer le path de ce fichier, etc.

    Le troisième explique plus généralement le développement de plugin RCP.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Août 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 30
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    J'ai commencé à suivre ce tuto pour créer des menus contextuels et des fenêtres dialog.

    Nom : PJ.jpg
Affichages : 358
Taille : 48,6 Ko

    En fait j'arrive pas à avoir le menu new=>group, menuContribution ..etc quand je clique sur org.eclipse.ui.menus, j'ai à la place Generic.
    J'ai installé e4 tools mais toujours le même problème !

    Avez vous une solution ?

    D'avance merci

  6. #6
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Août 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 30
    Points : 13
    Points
    13
    Par défaut
    Mon souci est réglé, j'avais un problème avec eclipse.

    J'ai lancé mon plugin en tant que eclipse application, j'ai la vue suivante :
    Nom : PJ.jpg
Affichages : 354
Taille : 118,5 Ko

    L'étape suivante, je veux donner la possibilité à mon plugin qu'il me récupère le contenu du fichier "test.java" (là où je fait clique droit).
    quelqu'un pourra m'aider ?

    Autre problème, je voulais importer ce plugin vers un autre eclipse, et là j'ai eu plein de soucis de dépendances, j'ai rajouté tous les jars manquant mais j'arrive toujours pas à l'importer ! quelqu'un a déjà rencontré ce problème ? j'ai mis en PJ le jar du plugin si vous voulez essayer de l'importer et voir les erreurs.

    D'avance merci
    Fichiers attachés Fichiers attachés

  7. #7
    Membre expert
    Avatar de Mickael_Istria
    Homme Profil pro
    Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Inscrit en
    Juillet 2008
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 476
    Points : 3 005
    Points
    3 005
    Par défaut
    Citation Envoyé par achaal Voir le message
    En fait j'arrive pas à avoir le menu new=>group, menuContribution ..etc quand je clique sur org.eclipse.ui.menus, j'ai à la place Generic.
    J'ai installé e4 tools mais toujours le même problème !
    Pour avoir l'assistant, il faut souvent que tu aies les sources du plugin dont tu utilises l'extension dans ta target-platform. Si ta target-platform est ton Eclipse courant, il faut que tu installes dedans "Eclipse SDK" par (depuis l'update-site de Luna ou Mars), qui contient les sources de org.eclipse.ui.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Août 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 30
    Points : 13
    Points
    13
    Par défaut
    Mon souci est réglé, j'avais un problème avec eclipse.

    J'ai lancé mon plugin en tant que eclipse application, j'ai la vue suivante :

    Nom : PJ.jpg
Affichages : 359
Taille : 118,5 Ko

    L'étape suivante, je veux donner la possibilité à mon plugin qu'il me récupère le contenu du fichier "test.java" (là où je fait clique droit).
    quelqu'un pourra m'aider ?

    D'avance merci

  9. #9
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    La classe de handler (exemple) :
    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
    40
    41
    42
    43
    44
    45
    46
    47
    package net.developpez.workspaceplugin.handlers;
     
    import org.eclipse.core.commands.AbstractHandler;
    import org.eclipse.core.commands.ExecutionEvent;
    import org.eclipse.core.commands.ExecutionException;
    import org.eclipse.core.expressions.IEvaluationContext;
    import org.eclipse.jdt.core.ICompilationUnit;
    import org.eclipse.jface.dialogs.MessageDialog;
    import org.eclipse.jface.viewers.ISelection;
    import org.eclipse.jface.viewers.IStructuredSelection;
    import org.eclipse.ui.ISources;
     
    public class CreateDeployerProjectHandler extends AbstractHandler {
     
    	public CreateDeployerProjectHandler() {
    	}
     
    	@Override
    	public Object execute(ExecutionEvent event) throws ExecutionException {
    		Object appContextObj = event.getApplicationContext();
    		if (appContextObj instanceof IEvaluationContext) {
    			IEvaluationContext appContext = (IEvaluationContext) appContextObj;
    			ISelection selection = (ISelection) appContext
    					.getVariable(ISources.ACTIVE_CURRENT_SELECTION_NAME);
                            // les tests sont redondants par rapport aux extensions (cela n'est pas nécessaire, mais plus sûr au cas où on se trompe les enabledWhen, visibleWhen...)
    			if ( selection instanceof IStructuredSelection ) {
    				IStructuredSelection structuredSelection = (IStructuredSelection) selection;
    				if ( structuredSelection.size()==1 ) {
    					Object element = structuredSelection.getFirstElement();
    					if ( element instanceof ICompilationUnit ) {
    						execute((ICompilationUnit)element);
    					}
    				}
    			}
    		}
    		return null;
    	}
     
    	private void execute(ICompilationUnit file) {
    		MessageDialog.openInformation(null, 
    				"Fichier sélectionné", 
    				String.format("Path: %s%n", file.getPath()
    			    )
    	    );
    	}
     
    }
    Les extensions (exemple) :
    Code xml : 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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    <?xml version="1.0" encoding="UTF-8"?>
    <?eclipse version="3.4"?>
    <plugin>
       <extension
             point="org.eclipse.ui.menus">
          <menuContribution
                allPopups="false"
                locationURI="popup:org.eclipse.jdt.ui.PackageExplorer">
             <menu
                   id="workspaceplugin.clickanddeploy"
                   label="Click and Deploy">
                <command
                      commandId="workspaceplugin.command.createDeployerProject"
                      id="workspaceplugin.command.createDeployerProject.menu"
                      label="Create Deployer Project"
                      style="push">
                   <visibleWhen
                         checkEnabled="true">
                   </visibleWhen>
                </command>
                <command
                      commandId="workspaceplugin.command.createBuild"
                      id="workspaceplugin.command.createBuild.menu"
                      label="Create Build"
                      style="push">
                   <visibleWhen
                         checkEnabled="true">
                   </visibleWhen>
                </command>
             </menu>
          </menuContribution>
       </extension>
       <extension
             point="org.eclipse.ui.handlers">
          <handler
                class="net.developpez.workspaceplugin.handlers.CreateDeployerProjectHandler"
                commandId="workspaceplugin.command.createDeployerProject">
             <activeWhen>
                <with
                      variable="selection">
                   <reference
                         definitionId="workspaceplugin.iscompilationunit">
                   </reference>
                </with>
             </activeWhen>
             <enabledWhen>
                <with
                      variable="selection">
                   <reference
                         definitionId="workspaceplugin.iscompilationunit">
                   </reference>
                </with>
             </enabledWhen>
          </handler>
          <handler
                commandId="workspaceplugin.command.createBuild">
             <activeWhen>
                <with
                      variable="selection">
                   <reference
                         definitionId="workspaceplugin.iscompilationunit">
                   </reference>
                </with>
             </activeWhen>
             <enabledWhen>
                <with
                      variable="selection">
                   <reference
                         definitionId="workspaceplugin.iscompilationunit">
                   </reference>
                </with>
             </enabledWhen>
          </handler>
       </extension>
       <extension
             point="org.eclipse.ui.commands">
          <command
                id="workspaceplugin.command.createDeployerProject"
                name="Create Deployer Project">
          </command>
          <command
                id="workspaceplugin.command.createBuild"
                name="Create Build">
          </command>
       </extension>
       <extension
             point="org.eclipse.core.expressions.definitions">
          <definition
                id="workspaceplugin.iscompilationunit">
             <and>
                <count
                      value="1">
                </count>
                <iterate
                      ifEmpty="false">
                   <instanceof
                         value="org.eclipse.jdt.core.ICompilationUnit">
                   </instanceof>
                </iterate>
             </and>
          </definition>
       </extension>
     
    </plugin>

    Le manifest (pour les dépendances) :
    Code manifest : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Manifest-Version: 1.0
    Bundle-ManifestVersion: 2
    Bundle-Name: Workspace plugin
    Bundle-SymbolicName: WorkspacePlugin;singleton:=true
    Bundle-Version: 1.0.0.qualifier
    Bundle-Activator: net.developpez.workspaceplugin.Activator
    Require-Bundle: org.eclipse.core.runtime,
     org.eclipse.core.expressions,
     org.eclipse.ui,
     org.eclipse.core.resources,
     org.eclipse.jdt.core
    Bundle-RequiredExecutionEnvironment: JavaSE-1.8
    Bundle-ActivationPolicy: lazy

    Le second menu n'apparait pas parce que je n'ai pas indiqué de Handler (j'ai procédé par configuration étendue, parce que je préfère avoir cette souplesse de configuration : tu peux également mettre directement le nom de la classe de handler dans la propriété defaultHandler de la commande, et mettre l'expression enabledWhen associé au handler dans la partie visibleWhen du menu, en mettant l'option checkEnabled à false, ou défaut).

    A partir de là, tu peux récupérer le contenu du fichier, en tant que qu'arbre (pour un traitement direct des structures et instructions java de la classe) ou au flux texte en utilisant le path et un moyen classique (Reader, InputStream...).

  10. #10
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Août 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 30
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup joel.drigo, je vais tester et je te tiens au courant

  11. #11
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Août 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 30
    Points : 13
    Points
    13
    Par défaut [urgent] Intégration d'un plugin sur eclipse
    Bonjour joel.drigo

    Merci, j'ai pu récupéré le nom du package, par contre j'ai toujours des soucis pour intégrer mon plugin dans un autre eclipse, j'ai essayé les différentes étapes de la doc de vogel mais j'arrive pas.
    1- Déposé le plugin sur le répertoire droppins d'eclipse : KO
    2- L'installer à travers Install New Software : KO (problème de dépendances, j'ai tout importé, mais à chaque fois il me demande un autre plugin jusqu'à ce qu'il a trouvé un conflit de version)
    3- Déposé sur le répertoire plugins de eclipse : KO

    est ce que tu pourras m'aider sur ce point là stp ? je suis vraiment bloqué pour pouvoir utiliser mon plugin ailleurs ?

    ci joint le zip de mon plugin.

    Cordialement,
    Fichiers attachés Fichiers attachés

  12. #12
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Normalement, il suffit de

    • sélectionner le dossier de projet correspondant au plugin ;
    • afficher le menu contextuel, et lancer le menu Export ;
    • chosir la section Plug-in developpement, puis Deployable plug-ins and fragment ;
    • configurer l'export comme tu le désires, puis lancer l'export ;
    • récupérer le fichier .jar, sans le dossier plugins (ou les 2 fichiers, si tu as choisi de faire aussi un plugin de sources) et le mettre dans le dossier dropins, puis relancer Eclipse (on peut également copier le dossier directement dans le dossier eclipse (en respectant la structure de dossiers, plugins et/ou features, le cas échéant) ;
    • et là, tu devrais voir ton nouveau menu.


    [EDIT]Je viens de tester ton plugin et j'ai pu le l'installer sans problème (en le déposant dans dropins). Pour l'exécution, Create deployer project ne fait rien, mais c'est probablement dû au code, et l'autre action affiche un message.

    A noter que tu devrais appeler tes 2 commandes différemment et en fonction de ce qu'elles font, pour que leur apparition dans le Quick Search soit pleinement fonctionnelle.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Août 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 30
    Points : 13
    Points
    13
    Par défaut [urgent] Intégration d'un plugin sur eclipse
    Merci pour ta réponse joel.drigo,

    J'arrive toujours pas à l'intégrer, j'ai fait toutes les manips mais toujours le même souci. je vois pas mon menu.

    Comment je vais faire ?

    est ce que tu peux faire un test chez toi ?

  14. #14
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par achaal Voir le message
    est ce que tu peux faire un test chez toi ?
    Je l'ai fait dans Luna et pas de problème (voir mon paragraphe [EDIT] dans mon précédent post).

  15. #15
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Août 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 30
    Points : 13
    Points
    13
    Par défaut
    Merci pour ton aide joel.drigo,

    en fait sur mon plugin, j'ai un fichier xml que j'utilise à l'exécution, il est sur le répertoire src :

    Nom : plugin_project.jpg
Affichages : 336
Taille : 34,1 Ko

    sur le code pour le récupérer il suffit juste de fournir le chemin /src/nomFichier.xml et ça marche.

    Le problème c'est quand j'intègre mon plugin dans autre eclipse X, il n'arrive pas à me trouver le fichier, il cherche sur le répertoire d'eclipse X et non sur le répertoire src du plugin.
    Est ce que tu sais comment faire pour que le plugin cherche tjrs ce fichier xml dans le répertoire src ?

    D'avance merci

  16. #16
    Membre expert
    Avatar de Mickael_Istria
    Homme Profil pro
    Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Inscrit en
    Juillet 2008
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 476
    Points : 3 005
    Points
    3 005
    Par défaut
    Les fichiers ne marchent qu'en mode "projet" depuis le workspace. Une fois que le code est compile et package dans un jar, le code ne peut plus acceder a ce fichier. A la place, il faut utiliser des Resources, que tu obtiens par exemple avec getClass().getResourceAsStream() qui te retourne le contenu d'un objet dans le jar comme une InputStream.
    Le mode resource est cense marcher aussi bien en mode projet que dans le jar.

  17. #17
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Le fichier xml est-il "fixe" (quelque soit l'utilisateur) ou "variable" (différent par workspace, projet, etc...) ?

    Si le fichier est fixe, il suffit de l'inclure au jar du plugin, comme n'importe quel fichier de ressource, accessible par quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Bundle bundle = Platform.getBundle(pluginId);
    URL urlOfResource = FileLocator.find(bundle, new Path(urlPath),null);
    où urlPath est le path relatif du fichier.

    Normalement, il est exporté avec ton plugin à la build, mais il peut être nécessaire de le sélectionner explicitement dans la liste de fichiers à exporter (dans l'un des écrans de configuration de l'export).



    Si le fichier est "variable", comme le fichier "plugin.xml" par exemple, il faudrait aller le chercher dans le projet (que tu peux obtenir par ICompilationUnit.getJavaProject()). Tu peux partir d'un path en dur pour ce fichier, ou faire une préférence (pour avoir une valeur pour le workspace), ou tu peux aussi paramétrer le path de ce fichier dans le manifest du projet (pour une valeur configurable par projet). Bien sûr cette préférence ou propriété de manifest sera un path relatif à la racine du projet, ce qui te permet d'y accèder via l'instance de IJavaProject.

  18. #18
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Août 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 30
    Points : 13
    Points
    13
    Par défaut
    Joel,

    C'est un fichier variable, c'est le plugin qui le modifie.
    Tu m'as dit que je peux l'obtenir par ICompilationUnit.getJavaProject(), sauf que par exemple si je lance mon plugin sur n'importe quel projet d'un eclipse X il va chercher le fichier sur ce projet. Mais moi je veux qu'il cherche dans mon plugin !

    D'avance merci,

  19. #19
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    C'est contradictoire ce que tu dis : soit il fait partie de ton plugin, et il est fixe, soit il fait partie d'un projet de travail, pour lequel on utilise ton plugin, et il est en dehors de ton plugin.

    Maintenant, on peut effectivement imaginer qu'il y ait un fichier par défaut dans le plugin, qui soit déployé dans le projet de travail au moment opportun (à priori à la première utilisation, ou sur demande expresse de l'utilisateur) : il suffit de copier le fichier depuis le plugin vers le projet. Ensuite, il peut être modifié à loisir et c'est celui-là (celui qui se trouve dans le projet) qu'il faut utiliser lors de l'exécution de tes actions.

  20. #20
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Août 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 30
    Points : 13
    Points
    13
    Par défaut
    Il fait partie de mon plugin mais il n'est pas fixe, en fait à chaque exécution du plugin, le fichier est modifié.
    Et le fichier doit rester dans le plugin, il ne doit pas être visible par l'utilisateur.

Discussions similaires

  1. [Glassfish] le plugin sous Eclipse garde le statut à STOPPED
    Par longbeach dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 17/12/2007, 07h47
  2. Développement de plugins pour eclipse
    Par bouriquo92 dans le forum Eclipse Platform
    Réponses: 4
    Dernier message: 20/12/2006, 12h53
  3. Developpement d'un plugin sous eclipse
    Par hanenelghali dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 16/08/2006, 12h07
  4. Développer un plugin pour Eclipse ( piste)
    Par eRom dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 12/07/2005, 10h05
  5. [Eclipse 3.0.1]Reconnaissance plugins sous eclipse
    Par doumam94 dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 14/03/2005, 10h38

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