JavaHelp System
# JavaHelp System

JavaHelp System ist ein plattformunabhängiges Java-Hilfesystem von Sun Microsystems, das es ermöglicht, auf einfache Weise Online-Hilfen und Dokumentationen in Java-Applikationen einzubinden. Die Hilfetexte sind HTML-basiert, während hingegen die Schnittstelle XML-basiert ist.

Unter dem JavaHelp System versteht man sowohl die Spezifikation der Programmierschnittstelle (gemäß Java Specification Request 97) als auch die Referenzimplementierung dieser Spezifikation. Die Referenzimplementierung ist Open Source gemäß GNU General Public License 2.0. Die Programmierschnittstelle liegt aktuell (2010) in der Version 2.0, die Referenzimplementierung in der Version 2.0_05 vor.

JavaHelp System ist selbst kein Autorenwerkzeug, es gibt aber eine Reihe von Autorenwerkzeugen, welche Hilfeinformationen im JavaHelp-Format erzeugen können.

## Bestandteile und Eigenschaften

Das JavaHelp-System besteht aus den folgenden Teilen:

### Help Viewer

    Der Help Viewer ist ein Fenster zur Darstellung der Hilfe inklusive Navigationselementen wie Toolbar, Navigationsfenster und Volltextsuche. Die Hilfetexte selbst werden basierend auf HTML 3.2 dargestellt und können um einfache Java-Komponenten für weitere Funktionalitäten angereichert werden. Inhaltsverzeichnis und Index gemäß W3C-Standards werden automatisch generiert.
    Der Help Viewer kann in einem eigenständigen Fenster oder an beliebiger anderer Stelle innerhalb einer Applikation dargestellt werden. Dasselbe gilt auch für die einzelnen Bestandteile des Help Viewers (wie beispielsweise das Navigationsfenster).

### Kontextsensitive Hilfe

    Kontextsensitive Hilfeinformation kann auch außerhalb des Help Viewers mittels Swing-Komponenten dargestellt werden. Dabei wird basierend auf den IDs der aktuellen Swing Controls auf die entsprechende Hilfe verlinkt.

### JavaHelp API

    Die JavaHelp-API ist für die Zusammenfassung und korrekte Darstellung der Hilfetexte zuständig. Sie ermöglicht es auch, Hilfeinformationen aus verschiedenen Quellen wie beispielsweise Inhaltsverzeichnis, Index und Such-Datenbanken zusammenzufassen.
    Die JavaHelp-API ist so konzipiert, dass sie konfigurierbar und erweiterbar ist. Beispielsweise kann sie um spezielle Navigationshilfen, Suchalgorithmen oder HTML-Viewer erweitert werden.

### Hilfeinformationen

    Die Hilfeinformationen werden durch das JavaHelp-System vom Rest der Applikation getrennt. Damit wird beispielsweise Hilfe in unterschiedlichen Sprachen möglich. Dadurch ist es auch möglich, die Online-Hilfe beziehungsweise nur Teile der Online-Hilfe eigenständig und unabhängig von der Applikation zu aktualisieren.
