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 StandardAnnotationFontFactoryregistriert. DiegetAvailableFontAttributeSets()-Methode gibt eine leereCollectionzurü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 -
AnnotationStandard14FontFactoryDiese 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.
-
AnnotationProfileLogicalFontFactoryFunktionsweise entspricht der
AnnotationLogicalFontFactory, intern wird eineAnnotationLogicalFontFactory-Instanz erstellt, die benötigteFontManagerFuture-Instanz wird aus derFontEnvironments-Klasse viagetFontManagerFuture()-Methode geholt. -
AnnotationProfileStandard14FontFactoryFunktionsweise entspricht der
AnnotationStandard14FontFactory, intern wird eineAnnotationStandard14FontFactory-Instanz erstellt, die benötigteFontManagerFuture-Instanz wird aus derFontEnvironments-Klasse viagetFontManagerFuture()-Methode geholt. -
AnnotationProfileSystemFontFactoryFunktionsweise entspricht der
AnnotationSystemFontFactory, intern wird eineAnnotationSystemFontFactory-Instanz erstellt, die benötigteFontManagerFuture-Instanz wird aus derFontEnvironments-Klasse viagetFontManagerFuture()-Methode geholt.

