Die abstrakte Basisklasse aller XFDF Annotationen ist die Klasse
XFDFAnnotation
. Sie verwaltet grundsätzliche Eigenschaften eines XFDF
Annotationsobjektes, wie Position, Titel und bestimmte Charakteristiken (Flags).
Die Klasse XFDFAnnotation
wird erweitert durch XFDFMarkupAnnotation
. Sie ist
die abstrakte Basisklasse aller Markup Annotationen. Markup Annotationen können
zusätzliche Formatierungs- oder Style-Informationen tragen.
Neben der Hierachie der Markup Annotationen gibt es die Klasse
XFDFPopupAnnotation
, die in direkter Linie von XFDFAnnotation
abstammt. Dies
ist begründet darin, dass XFDFPopupAnnotation
en keine eigenständigen Annotationen
darstellen. Sie sind Sub- oder Teilelemente von XFDFAnnotation
en, die zusätzliche
Information zu bestehenden Annotationen tragen und in einem eigenem Popup
dargestellt werden.
Ähnlich wie auch bei klassischen Annotationen halten Instanzen der XFDF Annotationsklassen nur den Zustand und die spezifische Ausprägung eines XFDF Annotationsobjektes. Interaktionen zwischen Benutzeroberfläche (GUI) und XFDF Annotationen werden von spezifischen Wrangler-Klassen gestaltet, die formatspezifische Darstellung wird von Renderer-Klassen ausgeführt.
Folgende Übersicht beschreibt die wichtigsten XFDFAnnotation
sklassen. Alle
diese Klassen stehen im Paket com.levigo.jadice.format.xfdf.annotation zur
Verfügung.
-
Darstellung einer Linie. Start- / Endpunkt, Linienfarbe, Linienmuster und Liniedicke können definiert werden. Diese Annotation ermöglicht die Enden der Linie zu gestalten. Damit sind auch Dekorationen bzw. Formen, wie offener, geschlossener Pfeil usw. möglich. Eine Pfeil-Annotation z.B. wird als Linien-Annotation mit einer entsprechenden Dekoration am Start- bzw. Endpunkt dargestellt.
-
Darstellung eines Quadrats oder Rechtecks. Es erlaubt Bereiche der zugrunde liegenden Seite eines Dokuments in rechteckiger Form zu umrahmen. Der Innenbereich kann gefüllt werden. Füllfarbe, Linienfarbe, Linienmuster und Liniendicke können definiert werden.
-
Darstellung eines Kreises oder einer Ellipse. Es erlaubt Bereiche der zugrunde liegenden Seite eines Dokuments in runder Form zu umrahmen. Der Innenbereich kann gefüllt werden. Füllfarbe, Linienfarbe, Linienmuster und Liniendicke können definiert werden.
-
Darstellung einer freihändigen Zeichnung, die aus einem oder mehreren Elementen bzw. Pfaden bestehen kann. Linienfarbe, Linienmuster und Liniendicke können definiert werden.
-
Eine Polygon-Annotation stellt ein geschlossenes Polygon dar. Füllfarbe, Linienfarbe, Linienmuster und Liniendicke können definiert werden.
-
Eine Polyline-Annotation ist ein Objekt, das aus einer oder mehreren Linien besteht. Der erste und letzte Punkt ist nicht verbunden. Der Start- / Endpunkt kann wie bei der Linien-Annotation mit einer Dekorationen versehen werden. Linienfarbe, Linienmuster und Liniendicke können definiert werden.
-
Eine Text-Anotation, die als Haftnotiz-Symbol dargestellt wird, der Textinhalt ist auf dem Dokument nicht sichtbar und ist in einem seperaten Fenster editier- und sichtbar. Das Dastellungssymbol kann aus einer Vorauswahl gewählt werden, als Standard wird das Haftnotiz-Symbol verwendet. Die Farbe des Symbols kann definiert werden.
Dieser Annotationstyp wird außerdem auch als Verlinkungs- bzw. Antwortsannotation verwendet. Im Adobe Reader kann man allen Annotationstypen zusätzlichen Textinhalt hinzufügen. Es ist auch möglich auf bereits vorhandenen Text Antworten zu geben, diese werden dann entsprechend verlinkt und können mit den Methoden 'getReplies()' und 'getInReplyTo()' anhand der eindeutigen ID-Definition abgefragt werden. Die Methode 'getReplies()' stellt die Kette der verlinkten Annotationen zur Verfügung. Die Methode 'getInReplyTo()' gibt die ID der vorherigen Annotation zurück. Die zusätzlichen Textinhalte sind nicht sichtbar und können im Adobe Reader über eine GUI-Komponente angezeigt werden.
-
Eine Freitext-Annotationen ermöglicht Darstellung von Text direkt auf einer Seite. Der Textinhalt ist innerhalb des definierten Bereichs sichtbar und kann aus unterschiedlichen Schriftarten, Schtiftgrößen und Farben bestehen. Der Textinhalt dieses Annotationstyp ist aktuell nicht editierbar. Es ist möglich einer Umrandung darzustellen. Linienfarbe, Linienmuster und Liniendicke können definiert werden. Wenn die Eigenschaft 'intent' mit dem Wert 'Callout' definiert wird, bekommt die Annotation eine erweiterte Funktionsweise. Es wird eine Linienerweiterung (2 Elemente) mit einer Pfeildekoration angezeigt, die auf einen bestimmten Bereich auf der Seite zeigen kann. Hier kann zusätzlich die Liniendekoration definiert werden.
-
Ähnlich wie die Freitext-Annotationen ermöglicht auch dieser Annotationstyp Text direkt auf einer Seite darzustellen. Diese Annotation unterstützt jedoch nur eine festgelegte Schrift. Die Darstellung von Schriftart, Schriftgröße und Farbe ist für den kompletten Text identisch. Es ist möglich einer Umrandung darzustellen. Linienfarbe, Linienmuster und Liniendicke können definiert werden. Auch hier ist die 'Callout' Funktionsweise möglich.
-
Diese Annotation ermöglicht Textbereiche einer Seite hervorzuheben. Zur Anbringung dieser Annotation muss im Vorfeld ein bestimmter Textbereich selektiert werden. Die Farbe der Markierung kann definiert werden.
-
Diese Annotation dient dazu Texte zu unterstreichen. Zur Anbringung dieser Annotation muss im Vorfeld ein bestimmter Textbereich selektiert werden. Die Farbe der Linie kann definiert werden.
-
Diese Annotation dient dazu Textstellen durchzustreichen. Zur Anbringung dieser Annotation muss im Vorfeld ein bestimmter Textbereich selektiert werden. Die Farbe der Linie kann definiert werden.
-
Diese Annotation dient dazu Textstellen mit einer Musterlinie (in der Regel ein Zick-Zack Muster) zu unterstreichen. Zur Anbringung dieser Annotation muss im Vorfeld ein bestimmter Textbereich selektiert sein. Die Farbe der Linie kann definiert werden.
-
Eine Caret-Annotation dient als visuelles Symbol um das Vorhandensein von Textbearbeitungen (Text durchstreichen / erweitern) anzuzeigen. Zur Anbringung dieser Annotation muss im Vorfeld ein bestimmter Textbereich selektiert sein. Beim Anwendungsfall 'Text durchstreichen' ist in dem Caret-Annotationsobjekt eine
XFDFStrikeOutAnnotation
abgelegt, die die Durchstreichen darstellt. Beim Speichern werden dann 2 Annotationsobjekte geschrieben (Caret + Strikeout) die via 'inReplyTo' Attribut in der XML-Struktur verlinkt sind. -
Eine Stempel-Annotation zeigt Text oder Grafiken an, die so aussehen , als wären sie auf die Seite aufgestempelt worden. Der Inhalt ist in einer Base64 kodierten Appearance-Stream XML-Struktur abgelegt. Stempel-Annotation können aktuell nur angezeigt werden.