Aufbau und Funktion einer Fontabfrage

Die AnnotationFontFactory-Implementationen werden mit einer FontAttributeSet-Klasse abgefragt, die die entsprechenden Attribute / Werte des Fonts beinhalten. Folgende Attribute werden von textbasierten Annotationen (siehe Klasse TextAnnotation) verwendet und entsprechend in der FontAttributeSet-Abfrage abgelegt:

Attribut FontName, ermittelt aus getFontFace()
Attribut Bold, wird nur definiert wenn Rückgabewert isBold() == true
Attribut Italic, wird nur definiert wenn Rückgabewert isItalic() == true
Attribut Plain, wird nur definiert wenn Rückgabewert isBold() == false und isItalic() == false

Weitere Attribute werden nicht definiert / berücksichtigt; Gross-/Kleinschreibung bei der Fontnamensdefinition wird bei der Abfrage nicht beachtet.

Als weiterer Parameter wird eine Map-Instanz mit der AnnotationType-Instanz der aktuellen Textannotation zur Verfügung gestellt. Anhand der AnnotationType-Instanz kann die Annotation identifiziert werden, zum Beispiel die Klasse der Annotation (siehe auch Klassen Scopes und AnnotationType):

 public Font create(FontAttributeSet fontAttributeSet, Map<String, Object> scope) {
    Object scopeObject = scope.get(Scopes.SOURCE);
    if (scopeObject != null && scopeObject instanceof AnnotationType) {
      AnnotationType type = (AnnotationType) scopeObject;
      System.out.println(type.getAnnotationClass());
    }
    ...
}

                    
[jadice document platform Version 5.5.12.1: Dokumentation für Entwickler. Veröffentlicht: 2021-08-17]