Auch wenn die Funktionalitäten der jadice document platform weit über das einfache Anzeigen von Dokumenten hinausgehen, ist die Darstellung am Bildschirm doch einer der häufigsten Einsatzzwecke. Die folgenden Abschnitte gehen auf die zu diesem Zweck existierenden Klassen ein. Der in „Das Dokumentenmodell“ erläuterte Dokumentbegriff wird als bekannt vorausgesetzt. Nähere Details zum Umgang mit Dokumenten und Seiten folgen in „Dokumente in jadice“ und „Seiten in jadice“
Die folgenden Klassen existieren zur Anzeige von Dokumentinhalten:
ViewComponent
Die
ViewComponent
stellt als abstrakte Basisklasse die Querschnittsfunktionalität ihrer beiden Realisierungen,PageView
undThumbnailView
, zur Verfügung. Hauptaufgabe einerViewComponent
ist die Anzeige von Dokumentinhalten. Zu diesem Zweck hält sie eine Dokumentreferenz vor. Die Inhalte des referenzierten Dokuments werden seitenbasiert angezeigt.PageView
Die
PageView
ist die zentrale Anzeigekomponente innerhalb der jadice document platform. Als konkrete Realisierung derViewComponent
übernimmt sie die Verwaltung, Handhabung und Darstellung von Dokumenten und Seiten. Ob eine oder mehrere Seiten gleichzeitig angezeigt werden und wie im letzteren Fall deren Anordnung erfolgt, wird durch das gesetzte Seitenlayout (PageView.Layout
) bestimmt.ThumbnailView
Die
ThumbnailView
dient dazu, sämtliche Seiten eines Dokuments in einer Übersicht darzustellen. Diese kann auch zur Navigation innerhalb des Dokuments genutzt werden.
Die ViewComponent
bietet ein Konzept, mit dem – über die reine Anzeige von
Dokumenten hinausgehend – dem Nutzer zusätzliche Interaktionsmöglichkeiten
gegeben werden können. Um dies zu erreichen können selbst definierte Werkzeuge
(Instanzen von Tool
) an eine ViewComponent
angedockt werden. Diese
erhalten Input-Events und können mit der dargestellten Seite interagieren. Zudem
können sie Inhalte über dem eigentlichen Dokument rendern und Beiträge für das
Kontextmenü leisten.
Weitere Informationen zur Verwendung und den Möglichkeiten der Tool-API finden sich in „Tools“.
Sowohl PageView
als auch ThumbnailView
bieten für den Umgang mit
Dokumenten folgende Methoden an:
getDocument()
Diese Methode liefert eine Referenz auf das aktuell angezeigte Dokument. Der Aufruf dieser Methode kann jederzeit unabhängig vom Swing Event Dispatch Thread stattfinden.
setDocument(...)
Diese Methode ändert das anzuzeigende Dokument. Der Aufruf dieser Methode muss zwingend auf dem Swing Event Dispatch Thread stattfinden.
cleanup()
Diese Methode entfernt das Dokument. Der Aufruf dieser Methode kann jederzeit unabhängig von Swing Event Dispatch Thread stattfinden.
Instanzen von PageView
oder ThumbnailView
können immer genau ein
Dokument darstellen. Dieses kann ihnen unabhängig von seinem Ladezustand
übergeben werden. Änderungen am Dokument erkennen sie selbstständig und führen
entsprechende Updates der Anzeige durch.
Registrierte Listener, zum Beispiel die integrierende Anwendung, werden über
wichtige Änderungen an den Komponenten beziehungsweise der Darstellung des
Dokuments informiert. Dies geschieht unter Verwendung von
PropertyChangeEvent
s beziehungsweise
PropertyChangeListener
s.[6] Interessenten melden sich als
PropertyChangeListener
qualifiziert (genau für eine
definierte Eigenschaft) oder unqualifiziert (für alle Eigenschaften) bei der
jeweiligen Komponente an. Zur konkreten Identifizierung der betreffenden
Property sind Eigenschaftsnamen in PageView
beziehungsweise in
ThumbnailView
als öffentliche Konstanten deklariert.
Als JComponent
kann die PageView
direkt in eine
Swing-Komponentenhierarchie eingebettet werden. Im Regelfall empfiehlt es sich
jedoch, stattdessen den komfortableren BasicViewer
zu verwenden. Dieser
bietet das infrastrukturelle Umfeld für eine PageView
. Als
JComponent
beziehungsweise JavaBean ist er einfach in
eigene Architekturen und Layouts einbettbar. Er kombiniert die Bildanzeigefläche
einer PageView
mit zugehörigen Scrollbars. Für Swing-basierte Applikationen
ist der BasicViewer
im Normalfall einem direkten Einsatz der PageView
vorzuziehen.
Ähnliches gilt für den Fall der ThumbnailView
. Diese ist ebenfalls eine
JComponent
und wird selten direkt verwendet.
Stattdessen existiert die Klasse PageSorter
, die eine ThumbnailView
umhüllt und mit Scrollbars versieht. Die Demo-Klasse SorterFrame
zeigt die
Verwendung des PageSorter
in einem separaten JFrame
.
Alternativ dazu kann eine ThumbnailView
als GUI-Element
über einer PageView
eingeblendet werden. Diese Funktionalität wird durch das
Werkzeug LightboxThumbnailTool
angeboten. Es kann über die in „Tools“ beschriebene Vorgehensweise auf einer
PageView
registriert werden.
[6] Siehe dazu auch PropertyChangeEvent und PropertyChangeSupport in der Java 2 Platform API Specification