AnnotationFontFactory
erweitert das FontFactory
-Interface um die Methode
getAvailableFontAttributeSets()
, die eine
Collection
mit FontAttributeSet
-Definitionen
zurückgibt, die für eigene Zwecke (z.B. Informationen über Fonts) verwendet werden
kann. Die aktuellen Implementationen liefern über diese Methode verfügbare Fonts. Es
werden alle Fonts mit identischer FamilyName
-Definition zusammengefasst und in
einer vereinfachten FontAttributeSet
-Definition bereitgestellt:
Beispiel: Die Fontdefinitionen
-
FamilyName
= "Arimo",FontName
= "Arimo",PostScriptName
= "Arimo",Plain
-
FamilyName
= "Arimo",FontName
= "Arimo Bold",PostScriptName
= "Arimo-Bold",Bold
-
FamilyName
= "Arimo",FontName
= "Arimo Italic",PostScriptName
= "Arimo-Italic",Italic
-
FamilyName
= "Arimo",FontName
= "Arimo Bold Italic",PostScriptName
= "Arimo-BoldItalic",Bold
,Italic
werden zu folgender Definition zusammengefasst:
-
FamilyName
= "Arimo"
Werden schriftbezogene GUI-Annotationseditorkomponenten (Schriftauswahl, Editieren
des Textes) verwendet, muss die Methode gewünschte / verfügbare Fontdefinitionen
liefern, ansonsten kann die
getAvailableFontAttributeSets()
-Methode
null
oder eine leere Collection
zurückgeben. Auf die Darstellung / Rendering der Annotationen hat diese Methode
keinen Einfluss.
Basis-/Fallback-Implementation im Paket
com.levigo.jadice.annotation.font
im jadice document platform 5
Core-Annotation-Modul:
-
Diese Klasse liefert eine vektorbasierte
Font
-Basisimplementation mit einem eingeschränkten Zeichensatz (a-z, A-Z, 0-9, Leerzeichen), es sind keine Sonderzeichen vorhanden. Diese Implementation benötigt keineFontManager
-Instanz und ist in derAnnotations
-Klasse als StandardAnnotationFontFactory
registriert. DiegetAvailableFontAttributeSets()
-Methode gibt eine leereCollection
zurück.
Die Implementationen im Paket
com.levigo.jadice.appbase.font.factory.annotation
im jadice document platform 5
Core-Appbase-Modul benötigen im Konstruktor eine FontManagerFuture
-Instanz und
können daher nicht im Annotationsprofil verwendet werden. Bei erfolgreicher Suche in
der entsprechenden FontManager
-Instanz wird ein Font
-Objekt zurückgegeben.
Diese Klassen stehen auch als Quellcode zur Verfügung.
-
Diese Implementation löst logische Fontnamen nach jadice Standard-14 Fonts auf (siehe
LogicalFontIdentifier
,LogicalFontFactory
), diegetAvailableFontAttributeSets()
-Methode stellt alle logische Fontdefinitionen zur Verfügung. Die benötigteFontManagerFuture
-Instanz muss die Standard-14 Fonts registriert haben -
AnnotationStandard14FontFactory
Diese Implementation löst alle jadice Standard-14 Fontnamen auf (siehe
Standard14Substitute
,Standard14FontFactory
), diegetAvailableFontAttributeSets()
-Methode stellt alle Standard-14 Fontdefinitionen zur Verfügung. Die benötigteFontManagerFuture
-Instanz muss die Standard-14 Fonts registriert haben. -
Diese Implementation versucht Fontnamen nach Systemfonts aufzulösen, die
getAvailableFontAttributeSets()
-Methode stellt alle System-Fontdefinitionen zur Verfügung. Die benötigteFontManagerFuture
-Instanz muss System-Fonts, die der Java Virtual Machine (JVM) bekannt sind, registriert haben. -
Diese Implementation fasst mehrere
AnnotationFontFactory
-Instanzen zusammen, diegetAvailableFontAttributeSets()
-Methode stellt die Fontdefinitionen aus allen registriertenAnnotationFontFactory
-Instanz zur Verfügung.
Die Implementationen im Paket com.levigo.jadice.demo.font.annotation
im jadice document platform 5 Core-Demo-Modul besitzen einen Standardkonstruktor und können somit im
Annotationsprofil verwendet werden, hier wird intern eine
FontManagerFuture
-Instanz mit Standard-14 / System-Fonts verwendet. Diese Klassen
befinden sich in einem Demo-Modul, stehen als Quellcode zur Verfügung und sollten
bei Verwendung kopiert und entsprechend angepasst werden, da sich der Quelltext der
Klassen in Zukunft ändern kann.
-
AnnotationProfileLogicalFontFactory
Funktionsweise entspricht der
AnnotationLogicalFontFactory
, intern wird eineAnnotationLogicalFontFactory
-Instanz erstellt, die benötigteFontManagerFuture
-Instanz wird aus derFontEnvironments
-Klasse viagetFontManagerFuture()
-Methode geholt. -
AnnotationProfileStandard14FontFactory
Funktionsweise entspricht der
AnnotationStandard14FontFactory
, intern wird eineAnnotationStandard14FontFactory
-Instanz erstellt, die benötigteFontManagerFuture
-Instanz wird aus derFontEnvironments
-Klasse viagetFontManagerFuture()
-Methode geholt. -
AnnotationProfileSystemFontFactory
Funktionsweise entspricht der
AnnotationSystemFontFactory
, intern wird eineAnnotationSystemFontFactory
-Instanz erstellt, die benötigteFontManagerFuture
-Instanz wird aus derFontEnvironments
-Klasse viagetFontManagerFuture()
-Methode geholt.