Ce billet entame une série de billets de type howto que je compte rédiger autour d'Eclipse en tant que plateforme de développement et non plus comme IDE.
Disons que c'est une sorte d'aide mémoire, pour moi certainement, et pour vous aussi je l'espère.
Le style sera un peu minimaliste : je vais aller directement à l'essentiel et au pratique, sans détailler la théorie de la chose : je vais montrer comment faire telle chose, pas ce qu'elle est ou à quoi elle sert.
Commençons par un point simple : Comment créer une nouvelle nature de projet ?
Dans le plug-in qui va définir cette nature, modifier le manifest (META-INF/MANIFEST.MF) pour ajouter le bundle org.eclipse.core.resources (qui définit l'interface IProjectNature ainsi que le point d'extension org.eclipse.core.resources.natures) et org.eclipse.core.runtime (qui définit CoreException) :
Require-Bundle: org.eclipse.core.resources, org.eclipse.core.runtime
Créez ensuite une classe qui implémente org.eclipse.core.resources.IProjectNature :
package com.developpez.djo.howto.nature; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProjectNature; import org.eclipse.core.runtime.CoreException; public class DummyNature implements IProjectNature { public static final String NATURE_ID = "com.developpez.djo.howto.nature.dummyNature"; private IProject project; public void configure() throws CoreException { } public void deconfigure() throws CoreException { } public IProject getProject() { return project; } public void setProject(IProject project) { this.project = project; } }
Notez le champ NATURE_ID que j'ai mis en public car ça va servir pour récupérer l'identifiant de la nature lors de son affectation à un projet par exemple.
Il faut ensuite déclarer la nature dans plugin.xml :
name="Ma nature de projets"
<extension id="dummyNature" name="Ma nature de projets" point="org.eclipse.core.resources.natures"> <runtime> <run class="com.developpez.djo.howto.nature.DummyNature"> </run> </runtime> </extension>
Là il vous faut être attention : dans l'attribut id, il faut mettre seulement la partie de l'identifiant de la nature qui vient après l'identifiant du plugin.
Par exemple, dans ce cas ci, le plugin qui définit la nature a comme identifiant "com.developpez.djo.howto" (déclare dans le manifest) :
Bundle-SymbolicName: com.developpez.djo.howto.nature;singleton:=true
L'identifiant complet de la nature est calculé de cette façon :
<nom-symbloique-du-bundle> . <id-de-la-nature-tel-que-saisi-dans-plugin.xml>
com.developpez.djo.howto.nature . dummyNature
Ce qui donne : com.developpez.djo.howto.nature.dummyNature, et c'est cette valeur là qu'il faut mettre dans le champ NATURE_ID.
Pour associer une image à la nature (c'est un overlay qui sera affiché au dessus de l'icône du dossier bleu d'un projet), il faut passer par un autre point d'extension qui est "org.eclipse.ui.ide.projectNatureImages" qui se trouve dans le plug-in "org.eclipse.ui.ide". il vous faut donc ajouter ce plugin dans la section Require-Bundle du manifest (quoi que j'ai remarqué que même si j'ajoute pas une dépendance vers ce plugin, ça fonctionne quand même), et ensuite, dans plugin.xml, ajoutez :
<extension point="org.eclipse.ui.ide.projectNatureImages"> <image icon="icons/dummy-nature.png" id="com.developpez.djo.howto.nature.dummyNature.img" natureId="com.developpez.djo.howto.nature.dummyNature"> </image> </extension>
Dans icon, utilisez le nom relatif d'une icône (de petite taille de préférence, genre 8x8). Dans id, renseigner n'importe quoi du moment que ça reste unique et un identifiant valide. Personnellement, j'ajoute ".img" à l'id de la nature. Enfin, dans natureId, renseigner l'identifiant complet de la nature.
N'oubliez pas d'inclure le dossier icons dans le binary build.
Projet Eclipse (dans un jar) : com.developpez.djo.howto.nature.source_1.0.0.jar
Vous devez être identifié pour poster un commentaire.
Ce blog tourne autour des nouvelles technologies dans le monde Java, tel que Wicket, Eclipse, JSF, Facelets, JPA, Spring, etc. mais aussi de choses moins classiques comme Scala par exemple !
| Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
|---|---|---|---|---|---|---|
| 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 |
Copyright © 2000-2012 - www.developpez.com