[svn-upgrade] new version jabref (2.7~beta1+ds)
[debian/jabref.git] / src / help / fr / Plugin.html
1 <html xmlns="http://www.w3.org/1999/xhtml">\r
2 <head>\r
3 <link rel="stylesheet" type="text/css" href="../jabref_help.css"/>\r
4 </head>\r
5 \r
6 <body>\r
7 \r
8 \r
9     <h1>Le Syst&egrave;me de greffons de JabRef </h1>\r
10 \r
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>\r
12 \r
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>\r
14 \r
15     <h2>Comment &eacute;crire un greffon</h2>\r
16 \r
17     <p>JabRef offre aux d&eacute;veloppeurs les points d'extension suivants&nbsp;:</p>\r
18     <ul>\r
19       <li><code>ImportFormat</code> - Ajoute &agrave; JabRef des importateurs accessibles depuis 'Importer dans ...'.</li>\r
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>\r
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>\r
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>\r
23       <li><code>ExportFormatProvider</code> - Une fa&ccedil;on plus puissante d'ajouter des formats d'exportation &agrave; JabRef.</li>\r
24       <li><code>LayoutFormatter</code> - Ajoute des formateurs qui pourront &ecirc;tre utilis&eacute;s dans la mise en page des exportations.</li>\r
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>\r
26         </ul>   \r
27 \r
28     <p>Ces points d'extension sont d&eacute;finis dans <code>plugin.xml</code> du JabRef-core-plugin,\r
29     qui peut &ecirc;tre trouv&eacute; dans <code>JabRef/src/plugins/net.sf.jabref.core/</code>.</p>\r
30 \r
31     <p>Pour commencer un d&eacute;veloppement, suivez ces principales &eacute;tapes&nbsp;:</p>\r
32     <ol>\r
33       <li>Extrayer le tronc de JabRef en utilisant SubVersion (<code>https://jabref.svn.sourceforge.net/svnroot/jabref/trunk</code>).\r
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>\r
35       <li>Compiler JabRef en utilisant <code>ant jars</code>.</li>\r
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.\r
37       En particulier, assurez-vous que&nbsp;:\r
38       <ul>\r
39         <li>...votre plugin.xml a une section <code>requires</code> qui importe le "core plugin" (<code>net.sf.jabref.core</code>).</li>\r
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>\r
41       </ul>\r
42       </li>\r
43       <li>Cr&eacute;er un jar de votre projet et mettez-le dans le r&eacute;pertoire <code>plugins</code> de JabRef.</li>\r
44       <li>Votre greffon devrait &ecirc;tre charg&eacute; quand vous d&eacute;marrez JabRef &agrave; partir du jar.</li>\r
45     </ol>\r
46 \r
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>\r
48 \r
49     <h2>Comment ajouter un point d'extension &agrave; JabRef</h2>\r
50 \r
51     <p>Ce document est destin&eacute; aux d&eacute;veloppeurs de JabRef qui veulent ajouter des points d'extension suppl&eacute;mentaires.</p>\r
52 \r
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>\r
54 \r
55 <code><pre>\r
56 &lt;extension-point id=&quot;PushToApplication&quot;&gt;\r
57         &lt;parameter-def type=&quot;string&quot; id=&quot;pushToApp&quot;\r
58                 custom-data=&quot;&lt;classname of the interface that plugin providers need to implement&gt;&quot; /&gt;\r
59         &lt;!-- optionally other parameters (we currently do not use any of these for anything)\r
60                 &lt;parameter-def type=&quot;string&quot; id=&quot;name&quot; /&gt;\r
61                 &lt;parameter-def type=&quot;string&quot; id=&quot;description&quot;\r
62                         multiplicity=&quot;none-or-one&quot; /&gt;\r
63                         --&gt;\r
64 &lt;/extension-point&gt;\r
65 </pre></code>\r
66 \r
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>\r
68 \r
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>\r
70 \r
71 <code><pre>\r
72 /*\r
73  * Load fetchers that are plug-in extensions\r
74  */\r
75 JabRefPlugin jabrefPlugin = JabRefPlugin.getInstance(PluginCore.getManager());\r
76 if (jabrefPlugin != null){\r
77         for (EntryFetcherExtension ext : jabrefPlugin.getEntryFetcherExtensions()){\r
78                 EntryFetcher fetcher = ext.getEntryFetcher();\r
79                 if (fetcher != null){\r
80                         fetchers.add(fetcher);\r
81                 }\r
82         }\r
83 }\r
84 \r
85 // and later...\r
86 \r
87 for (EntryFetcher fetcher : fetchers){\r
88   GeneralFetcher generalFetcher = new GeneralFetcher(sidePaneManager, this, fetcher);\r
89   web.add(generalFetcher.getAction());\r
90   fetcherActions.add(generalFetcher.getAction());\r
91 }\r
92 </pre></code>\r
93 \r
94 </body>\r
95 </html> \r