Imported Upstream version 2.11~beta1+ds
[debian/jabref.git] / src / main / resources / help / fr / Plugin.html
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <link rel="stylesheet" type="text/css" href="../jabref_help.css"/>
4 </head>
5
6 <body>
7
8
9     <h1>Le Syst&egrave;me de greffons de JabRef </h1>
10
11     <p>Depuis la version 2.4b1, JabRef peut &ecirc;tre &eacute;tendu en utilisant un syst&egrave;me de greffons construit en utilisant le "Java Plugin Framework" (JPF).</p>
12
13     <p>Pour <i>utiliser des greffons</i>, mettez simplement le fichier jar du greffon dans le r&eacute;pertoire nomm&eacute; <code>plugins</code> dans le r&eacute;pertoire o&ugrave; se trouve JabRef.jar. Au d&eacute;marrage, JabRef affichera la liste de tous les greffons charg&eacute;s.</p>
14
15     <h2>Comment &eacute;crire un greffon</h2>
16
17     <p>JabRef offre aux d&eacute;veloppeurs les points d'extension suivants&nbsp;:</p>
18     <ul>
19       <li><code>ImportFormat</code> - Ajoute &agrave; JabRef des importateurs accessibles depuis 'Importer dans ...'.</li>
20       <li><code>EntryFetcher</code> - Ajoute l'acc&egrave;s &agrave; des bases de donn&eacute;es comme Citeseer ou Medline au menu <i>Recherche internet</i>.</li>
21       <li><code>ExportFormatTemplate</code> - Ajoute un mod&egrave;le d'exportation comme ceux accessible par <i>G&eacute;rer les exportations personnalis&eacute;es</i>.</li>
22       <li><code>ExportFormat</code> - Ajoute &agrave; la fen&ecirc;tre d'exportation de JabRef un filtre d'exportation (qui est plus sophistiqu&eacute; que le simple mod&egrave;le d'exportation).</li>
23       <li><code>ExportFormatProvider</code> - Une fa&ccedil;on plus puissante d'ajouter des formats d'exportation &agrave; JabRef.</li>
24       <li><code>LayoutFormatter</code> - Ajoute des formateurs qui pourront &ecirc;tre utilis&eacute;s dans la mise en page des exportations.</li>
25       <li><code>SidePanePlugin</code> - Ajoute un composant "panneau lat&eacute;ral" qui peut effectuer tout type d'op&eacute;rations. Le panneau est accessible &agrave; partir du menu <b>Greffons</b>  dans la fen&ecirc;tre principale de JabRef.</li>
26         </ul>   
27
28     <p>Ces points d'extension sont d&eacute;finis dans <code>plugin.xml</code> du JabRef-core-plugin,
29     qui peut &ecirc;tre trouv&eacute; dans <code>JabRef/src/resources/plugins/net.sf.jabref.core/</code>.</p>
30
31     <p>Pour commencer un d&eacute;veloppement, suivez ces principales &eacute;tapes&nbsp;:</p>
32     <ol>
33       <li>Extrayer le tronc de JabRef en utilisant SubVersion (<code>https://jabref.svn.sourceforge.net/svnroot/jabref/trunk</code>).
34     Il contient JabRef lui-m&ecirc;me ainsi que les greffons ajout&eacute;s jusqu'&agrave; pr&eacute;sent &agrave; JabRef (vous n'avez pas besoin du r&eacute;pertoire htdocs) et qui peuvent vous servir de point de d&eacute;part pour vos propres greffons.</li>
35       <li>Compiler JabRef en utilisant <code>ant jars</code>.</li>
36       <li>Cr&eacute;er votre propre projet et d&eacute;finissez votre entension dans votre propre plugin.xml qui doit satisfaire les points d'extension du "core" plugin.xml.
37       En particulier, assurez-vous que&nbsp;:
38       <ul>
39         <li>...votre plugin.xml a une section <code>requires</code> qui importe le "core plugin" (<code>net.sf.jabref.core</code>).</li>
40         <li>...votre plugin.xml a la section <code>runtime</code>, o&ugrave; vous dites &agrave; JPF o&ugrave; vous avez stock&eacute; vos fichiers de classe et ressources dans votre projet.</li>
41       </ul>
42       </li>
43       <li>Cr&eacute;er un jar de votre projet et mettez-le dans le r&eacute;pertoire <code>plugins</code> de JabRef.</li>
44       <li>Votre greffon devrait &ecirc;tre charg&eacute; quand vous d&eacute;marrez JabRef &agrave; partir du jar.</li>
45     </ol>
46
47         <p>Ne vous g&eacute;nez pas pour nous poser des questions li&eacute;es au syst&egrave;me de greffons sur la liste de diffusion&nbsp;!</p>
48
49     <h2>Comment ajouter un point d'extension &agrave; JabRef</h2>
50
51     <p>Ce document est destin&eacute; aux d&eacute;veloppeurs de JabRef qui veulent ajouter des points d'extension suppl&eacute;mentaires.</p>
52
53     <p>Pour ajouter un nouveau point d'extension, vous devez d&eacute;clarer ce point d'extension dans le plugin.xml du "core plugin" de fa&ccedil;on similaire &agrave; ceci&nbsp;:</p>
54
55 <pre>
56 &lt;extension-point id=&quot;PushToApplication&quot;&gt;
57         &lt;parameter-def type=&quot;string&quot; id=&quot;pushToApp&quot;
58                 custom-data=&quot;&lt;classname of the interface that plugin providers need to implement&gt;&quot; /&gt;
59         &lt;!-- optionally other parameters (we currently do not use any of these for anything)
60                 &lt;parameter-def type=&quot;string&quot; id=&quot;name&quot; /&gt;
61                 &lt;parameter-def type=&quot;string&quot; id=&quot;description&quot;
62                         multiplicity=&quot;none-or-one&quot; /&gt;
63                         --&gt;
64 &lt;/extension-point&gt;
65 </pre>
66
67         <p>Ensuite, vous devez relancer le g&eacute;n&eacute;rateur de code de greffon "<code>ant generate</code>", qui recr&eacute;era la classe "helper" dans  "<code>net.sf.jabref.plugin.core.generated</code>" afin qu'il inclut une m&eacute;thode <code>getPushToApplicationExtensions()</code> qui renvoie une liste de toutes les extensions PushToTalk r&eacute;f&eacute;renc&eacute;es dans votre syst&egrave;me.</p>
68
69     <p>Cette liste peut ensuite &ecirc;tre utilis&eacute;e comme ceci (un exemple de ce que nous faisons avec les extensiosn "entry fetcher")&nbsp;:</p>
70
71 <pre>
72 /*
73  * Load fetchers that are plug-in extensions
74  */
75 JabRefPlugin jabrefPlugin = JabRefPlugin.getInstance(PluginCore.getManager());
76 if (jabrefPlugin != null){
77         for (EntryFetcherExtension ext : jabrefPlugin.getEntryFetcherExtensions()){
78                 EntryFetcher fetcher = ext.getEntryFetcher();
79                 if (fetcher != null){
80                         fetchers.add(fetcher);
81                 }
82         }
83 }
84
85 // and later...
86
87 for (EntryFetcher fetcher : fetchers){
88   GeneralFetcher generalFetcher = new GeneralFetcher(sidePaneManager, this, fetcher);
89   web.add(generalFetcher.getAction());
90   fetcherActions.add(generalFetcher.getAction());
91 }
92 </pre>
93
94 </body>
95 </html>