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