Load /tmp/tmp.vjbgZ10456/jabref-2.2~b2 into
[debian/jabref.git] / src / help / de / CustomImports.html
1 <HTML>
2
3 <BODY text="#275856">
4 <basefont size="4" color="#2F4958" face="arial">
5
6 <H1>Externe Importfilter</H1>
7
8 <p>JabRef bietet Ihnen die M&ouml;glichkeit, ganz &auml;hnlich den Standard-Importern, eigene Importer 
9 zu definieren und zu benutzen. Man definiert einen Importer durch eine oder mehrere Java
10 <i>Klassen</i>, die Dateinhalte aus einem sogenannten <i>Input stream</i> lesen
11 und daraus BibTex-Eintr&auml;ge erzeugen. Sie k&ouml;nnen vorkompilierte Importer einbinden, die Sie vielleicht 
12 von SourceForge erhalten haben (siehe "Ihre Arbeit anderen zur Verf&uuml;gung stellen"). Sie k&ouml;nnen auch
13 mit Grundkenntnissen der Java-Programmierung eigene Importer f&uuml;r f&uuml;r Sie wichtige Referenzquellen 
14 erstellen oder neue, verbesserte Versionen existierender Importer einbinden, ohne JabRef neu zu
15 kompilieren.</p> 
16
17 <p>Externe Importfilter haben Vorrang vor Standard-Importern. So k&ouml;nnen Sie mit Ihren Importern
18 die existierenden in der automatischen Formaterkennung und an der Kommandozeile in JabRef &uuml;berschreiben.
19 Externe Importfilter selbst sind dann nach Namen sortiert.</p>
20
21 <H2>Einen externen Importfilter hinzuf&uuml;gen</H2>
22
23 <p>Stellen Sie sicher, dass Sie den Importer in kompilierter Form haben (eine oder mehrere
24 <code>.class</code> Dateien) und dass die Klassendateien
25 in einer Verzeichnisstruktur entsprechend ihrer Package-Struktur liegen. 
26 Um einen neuen externen Importfilter hinzuzuf&uuml;gen, &ouml;ffnen Sie den Dialog 
27 <b>Optionen -> Verwalte externe Importfilter</b>, und klicken Sie auf
28 <b>Aus Klassenpfad hinzuf&uuml;gen</b>. Ein Dateiauswahl-Fenster erscheint, 
29 mit dem Sie den Klassenpfad des Importers w&auml;hlen, dass hei&szlig;t den obersten Ordner,
30 in dem die Package-Struktur Ihres Importers beginnt. In einem zweiten Dateiauswahl-Fenster
31 w&auml;hlen Sie die <i>.class</i>-Datei Ihres Importers, die von <code>ImportFormat</code> abgeleitet
32 ist. Wenn Sie <b>Klasse ausw&auml;hlen</b> klicken, erscheint Ihr neuer Importer
33 in der Liste der externen Importfilter. Alle externen Importfilter erscheinen in den
34 JabRef-Submen&uuml;s <b>Datei -> Importieren -> Externe Importfilter</b> und 
35 <b>Datei -> Importieren und Anh&auml;ngen -> Externe Importfilter</b>.</p>
36
37 <p>Bitte beachten Sie: wenn Sie die Klassen in ein anderes Verzeichnis verschieben,
38 m&uuml;ssen Sie den Importer entfernen und neu hinzuf&uuml;gen. Wenn Sie einen Importfilter
39 mit einem bereits vorhandenen Namen registrieren, ersetzt JabRef den vorhandenen
40 externen Importfilter. Auch wenn es in manchen F&auml;llen m&ouml;glich ist, einen schon registrierten
41 Importer zu aktualisieren ohne JabRef neu zu starten (n&auml;mlich dann,
42 wenn der Importer nicht im Klassenpfad von JabRef ist), empfehlen wir, grunds&auml;tzlich
43 JabRef neu zu starten, wenn Sie ein Update eines externen Importers durchgef&uuml;hrt haben.
44 Sie k&ouml;nnen auch Importer aus ZIP- oder JAR-Archiven registrieren, w&auml;hlen Sie einfach
45 <b>Aus Archiv-Datei hinzuf&uuml;gen</b>, dann das ZIP- oder JAR-Archiv und dann den Eintrag
46 (Klassendatei), der den neuen Importer darstellt.</p>
47
48 <H2>Einen Importfilter entwickeln</H2>
49
50 Bitte schauen Sie auf unseren Download-Seiten nach Beispielen und n&uuml;tzliche Dateien zur 
51 Entwicklung Ihres Importfilters.
52
53 <H3>Ein einfaches Beispiel</H3>
54
55 <p>Angenommen, wir wollen Dateien der folgenden Form importieren:
56 <pre>
57 1936;John Maynard Keynes;The General Theory of Employment, Interest and Money
58 2003;Boldrin & Levine;Case Against Intellectual Monopoly
59 2004;ROBERT HUNT AND JAMES BESSEN;The Software Patent Experiment
60 </pre></p>
61
62 <p>Erzeugen Sie in einem Text-Editor eine von <code>ImportFormat</code> abgeleitete Klasse,
63 die die Methoden <code>getFormatName()</code>, <code>isRecognizedFormat()</code>
64 und <code>importEntries()</code> implementiert. Hier ein Beispiel:
65 <pre>
66 import java.io.*;
67 import java.util.*;
68 import net.sf.jabref.*;
69 import net.sf.jabref.imports.ImportFormat;
70 import net.sf.jabref.imports.ImportFormatReader;
71
72 public class SimpleCsvImporter extends ImportFormat {
73
74   public String getFormatName() {
75     return "Simple CSV Importer";
76   }
77
78   public boolean isRecognizedFormat(InputStream stream) throws IOException {
79     return true; // this is discouraged except for demonstration purposes
80   }
81   
82   public List importEntries(InputStream stream) throws IOException {    
83         ArrayList bibitems = new ArrayList();
84     BufferedReader in = new BufferedReader(ImportFormatReader.getReaderDefaultEncoding(stream));
85       
86     String line = in.readLine();
87     while (line != null) {
88       if (!"".equals(line.trim())) {
89         String[] fields = line.split(";");
90         BibtexEntry be = new BibtexEntry(Util.createNeutralId());
91         be.setType(BibtexEntryType.getType("techreport"));
92         be.setField("year", fields[0]);
93         be.setField("author", fields[1]);
94         be.setField("title", fields[2]);
95         bibitems.add(be);
96         line = in.readLine();
97       }     
98     }
99     return bibitems;            
100   }
101 }
102 </pre></p>
103
104 <p>Beachten Sie, dass die Beispielklasse im Default-Package liegt. Angenommen, Sie haben
105 sie unter <code>/meinpfad/SimpleCsvImporter.java</code> gespeichert. Nehmen wir weiter an,
106 die Datei <i>JabRef-2.0.jar</i> ist im gleichen Verzeichnis wie
107 <code>SimpleCsvImporter.java</code> und Java ist in Ihrem Kommandopfad. 
108 Kompilieren Sie die Klasse mit JSDK 1.4 zum Beispiel mit folgendem Kommandozeilen-Aufruf: 
109 <pre>
110 javac -classpath JabRef-2.0.jar SimpleCsvImporter.java
111 </pre>
112 Nun sollte dort auch eine Datei <code>/mypath/SimpleCsvImporter.class</code> liegen.</p>
113
114 <p>&Ouml;ffnen Sie in JabRef <b>Optionen -> Verwaltung externer Importfilter</b> und klicken Sie
115 auf <b>Aus Klassenpfad hinzuf&uuml;gen</b>. Navigieren Sie nach <code>/meinpfad</code> und 
116 klicken Sie <b>Klassenpfad ausw&auml;hlen</b>. W&auml;hlen Sie dann <code>SimpleCsvImporter.class</code>
117 und klicken Sie <b>Klasse ausw&auml;hlen</b>. Ihr Importfilter sollte nun in der Liste der
118 externen Importfilter unter dem Namen "Simple CSV Importer" erscheinen, und,
119 sobald Sie <b>Schlie&szlig;en</b> gew&auml;hlt haben, auch in den Untermen&uuml;s <b>Datei -> Importieren -> 
120 Externe Importfilter</b> und <b>Datei -> Importieren und Anh&auml;ngen -> Externe Importfilter</b> 
121 des JabRef-Hauptfensters.</p>
122
123 <H2>Ihre Arbeit anderen zur Verf&uuml;gung stellen</H2>
124
125 Mit externen Importfiltern ist es recht einfach, Importfilter zwischen Nutzern auszutauschen und
126 gemeinsam zu nutzen. Wenn Sie einen Importer f&uuml;r ein  Format schreiben, das JabRef noch nicht unterst&uuml;tzt, 
127 oder einen Importer verbessern, bitten wir Sie, Ihre Ergebnisse auf unserer SourceForge.net 
128 Seite zu ver&ouml;ffentlichen. Wir bieten gerne eine Sammlung eingereichter Importfilter an oder 
129 f&uuml;gen sie unserer Auswahl an Standard-Importfiltern hinzu.
130
131 </HTML>