4 <basefont size="4" color="#2F4958" face="arial">
6 <H1>Filtres d'importation personnalisés</H1>
8 <p>JabRef vous permet de définir et d'utiliser vos propres formats d'importation, d'une façon très similaire aux filtres d'importation standard qui sont définis. Un filtre d'importation est défini par une ou plusieurs <i>classes</i> Java qui analyse le contenu d'un fichier à partir d'un flux d'entrée et crée des entrées BibTeX. Ainsi, avec un peu de programmation de base en Java, vous pouvez ajouter un format d'importation correspondant à votre source de références favorite ou enregistrer une version améliorée d'un format d'importation existant. De plus, cela vous permet d'ajouter des formats d'importation personnalisés compilés que vous pourriez obtenir à partir de SourceForge (par exemple) sans avoir à recompiler JabRef (voir plus bas "Partager votre travail").</p>
10 <p>Les formats d'importation personnalisés sont prioritaires sur les formats d'importation standard. De cette façon, vous pouvez remplacer les formats d'importations existants pour les fonctions d'auto-détection et de ligne de commande de JabRef. Les formats d'importation personnalisés sont classés par nom.
12 <H2>Ajouter un filtre d'importation personnalisé</H2>
14 <p>Assurez-vous que vous avez un filtre d'importation personnalisé compilé (un ou plusieurs fichiers <code>.class</code> sont décrits ci-dessous) et que les fichiers de classe soient dans la structure des répertoires selon la structure de leur paquetage. Pour ajouter un nouveau filtre d'importation personnalisé, ouvrez la boîte de dialogue <b>Options -> Gérer les importations personnalisées</b>, et cliquer <b>Ajouter à partir du répertoire</b>.
15 Un sélectionneur de fichier apparaîtra, vous permettant de sélectionner le chemin de classe de votre filtre d'importation, c'est à dire le répertoire où se trouve le répertoire supérieur de votre structure de paquetage. Dans un second sélectionneur de fichier vous sélectionnez votre fichier de classe de filtre d'importation, lequel doit dériver de <code>ImportFormat</code> [NdT : pas tout compris...]. En cliquant sur
16 <b>Sélectionner une nouvelle sous-classe de format d'importation</b>, votre nouveau filtre d'importation apparaîtra dans la liste des filtres d'importation personnalisés. Tous les filtres d'importations personnalisés apparaîtront dans le menu <b>Fichier -> Importer ->
17 Filtres d'importation personnalisés</b> et <b>Fichier -> Importer et joindre -> Filtres d'importation personnalisés</b> de la fenêtre de JabRef.</p>
21 <p>S'il vous plaît, notez que si vous déplacer la classe vers un autre répertoire, vous aurez à supprimer et à ré-ajouter le filtre d'importation. Si vous ajouter un filtre d'importation personnalisé sous un nom qui existe déjà, le filtre d'importation existant sera remplacé. De plus, dans certains cas, il est possible de mettre à jour un filtre d'importation personnalisé existant sans redémarrer JabRef (lorsque le filtre d'importation n'est pas dans le chemin de classe). Cependant, nous recommandons de redémarrer JabRef après la mise à jour d'un filtre d'importation personnalisé. Vous pouvez aussi ajouter des filtres d'importation contenu dans un fichier ZIP ou JAR ; sélectionnez simplement l'archive Zip ou Jar, puis l'entrée (fichier de classe) qui correspond au nouveau filtre d'importation.</p>
24 <H2>Créer un filtre d'importation</H2>
26 Pour des exemples et quelques fichiers utiles sur la façon de construire vos propres filtres d'importation, consulter s'il vous plaît la page de téléchargement.
29 <H3>Un exemple simple</H3>
31 <p>Supposons que vous vouliez importer des fichiers de la forme suivante :
33 1936;John Maynard Keynes;The General Theory of Employment, Interest and Money
34 2003;Boldrin & Levine;Case Against Intellectual Monopoly
35 2004;ROBERT HUNT AND JAMES BESSEN;The Software Patent Experiment
38 <p>Dans votre outil de développement ou éditeur de texte préféré, créez une classe dérivée de <code>ImportFormat</code> qui implémente les méthodes <code>getFormatName()</code>, <code>isRecognizedFormat</code>
39 and <code>importEntries()</code>. En voici un exemple :
43 import net.sf.jabref.*;
44 import net.sf.jabref.imports.ImportFormat;
45 import net.sf.jabref.imports.ImportFormatReader;
47 public class SimpleCsvImporter extends ImportFormat {
49 public String getFormatName() {
50 return "Simple CSV Importer";
53 public boolean isRecognizedFormat(InputStream stream) throws IOException {
54 return true; // ceci est déconseillé sauf pour les besoins de la démonstration
57 public List importEntries(InputStream stream) throws IOException {
58 ArrayList bibitems = new ArrayList();
59 BufferedReader in = new BufferedReader(ImportFormatReader.getReaderDefaultEncoding(stream));
61 String line = in.readLine();
62 while (line != null) {
63 if (!"".equals(line.trim())) {
64 String[] fields = line.split(";");
65 BibtexEntry be = new BibtexEntry(Util.createNeutralId());
66 be.setType(BibtexEntryType.getType("techreport"));
67 be.setField("year", fields[0]);
68 be.setField("author", fields[1]);
69 be.setField("title", fields[2]);
79 <p>Notez que l'exemple est dans le paquetage par défaut. Supposez que vous l'avez sauvé sous <code>/mypath/SimpleCsvImporter.java</code>. Supposez aussi que JabRef-2.0.jar est dans le même répertoire que <code>SimpleCsvImporter.java</code> et que Java est dans votre chemin d'exécutables.
80 Compilez-le en utilisant par exemple JSDK 1.4 avec
82 javac -classpath JabRef-2.0.jar SimpleCsvImporter.java
84 A présent il doit y avoir un fichier <code>/mypath/SimpleCsvImporter.class</code>.</p>
86 <p>Dans JabRef, ouvrez <b>Options -> Gérer les importations personnalisées</b>, et cliquez sur <b>Ajouter à partir du répertoire</b>.
87 Aller dans <code>/mypath</code> et cliquer le bouton <b>Sélectionner...</b>. Sélectionnez
88 <code>SimpleCsvImporter.class</code> et cliquer sur le bouton <b>Sélectionner...</b>.
89 Votre filtre d'importation devrait maintenant apparaître dans la liste des filtres d'importation personnalisés sous le nom "Simple CSV Importer" et, après avoir cliqué sur <b>Fermer</b>, aussi dans les menus <b>Fichier -> Importer -> Filtres d'importation personnalisés</b> et <b>Fichier -> Importer et joindre -> Filtres d'importation personnalisés</b> de la fenêtre de JabRef.</p>
91 <H2>Partager votre travail</H2>
93 Avec des fichiers de filtres d'importation personnalisés, il est vraiment simple de partager des formats d'importation personnalisés entre utilisateurs. Si vous écrivez un filtre d'importation pour un format non supporté par JabRef, ou l'amélioration d'un filtre existant, nous vous encourageons à soumettre votre travail sur notre page SourceForge.net. Nous serons heureux de distribuer la collection des fichiers d'importation soumis, ou d'en ajouter à la sélection de filtres d'importation standard.