Annotationseigenschaften können im Profil definiert werden, die beim Erstellen des Annotationsobjekts gesetzt werden, damit ist es möglich gewünschte Einstellungen abzubilden. Die Eigenschaft muss aber von der im 'annotation-type' Element angegebene Annotationsklasse unterstützt werden, die Eigenschaft wird via Code-Reflection auf das Annotationsobjekt angewendet. Der Name der zu setzenden Eigenschaft wird vom entsprechenden Methodenname abgeleitet, z.B. für die Eigenschaft 'linePainted' muss das Annotationsobjekt die Methode 'setLinePainted(boolean)' zur Verfügung stellen. Eine Übersicht der Methoden kann der Javadoc-Beschreibung der Annotationsklassen entnommen werden. Bei den hier aufgeführten Beispielen werden die Attribute mit dem Element 'fixed' (fester Wert) definiert, es gibt noch weitere Ausprägungen die aber nur im Zusammenhang mit Editordefinitionen Sinn machen, hierzu mehr im Kapitel „Attribut-Definition mit Editor“. Man kann hier nur einfache Eigenschaftstypen definieren:
java.lang.Boolean
java.lang.String
java.lang.Float
java.lang.Integer
java.awt.Color
Beispiele:
Eigenschaft Füllen definieren, die Methode 'setFilled(boolean)' muss vorhanden sein:
<fixed name="filled" propertyType="java.lang.Boolean"> <default>true</default> </fixed>
Text definieren, die Methode 'setText(String)' muss vorhanden sein:
<fixed name="text" propertyType="java.lang.String"> <default>Annotation-Text</default> </fixed>
Liniendicke definieren, die Methode 'setLineWidth(float)' muss vorhanden sein:
<fixed name="lineWidth" propertyType="java.lang.Float"> <default>10.5</default> </fixed>
Rotation definieren, die Methode 'setRotation(int)' muss vorhanden sein:
<fixed name="rotation" propertyType="java.lang.Integer"> <default>90</default> </fixed>
Linienfarbe definieren, die Methode 'setStrokeColor(Color)' muss vorhanden sein:
<fixed name="strokeColor" propertyType="java.awt.Color"> <default>#7F11AA22</default> </fixed>
Der Farbwert ist wie folgt aufgebaut (hexadezimal):
7F = Alphaanteil, 11 = Rotanteil, AA = Grünanteil, 22 = Grünanteil
Wenn kein Alphawert angegeben wird ist der Standardwert 'FF', d.h. volle Deckkraft.
Komplexe Eigenschaftsdefinitionen, z.B. Vektorpfade, Bilder, Datumsformate usw. müssen über eine AnnotationCustomizer-Implementation gesetzt werden (siehe Kapitel 'AnnotationCustomizer').
Die Attribut-Definition kann um eine Editorkomponente erweitert werden. Wird eine Annotation selektiert erscheint oberhalb eine Menüleiste in der alle definierten Editoren angezeigt werden, hier kann der Anwender dann Änderungen vornehmen.
Übersicht Editorkomponenten:
Farbeditor (com.levigo.jadice.swing.internal.annotation.editors.ColorEditor)
Editor zum Ändern der Füll-, Linien-, Textfarbe
Schrifteditor (com.levigo.jadice.swing.internal.annotation.editors.FontFaceEditor)
Editor zur Auswahl einer Schriftart
Schriftgrösseneditor (com.levigo.jadice.swing.internal.annotation.editors.FontSizeEditor)
Editor zur Auswahl der Schriftgrösse
Editor für Liniendicke (com.levigo.jadice.swing.internal.annotation.editors.LineWidthEditor)
Umschalteditor (com.levigo.jadice.swing.internal.annotation.editors.ToggleEditor)
Kann verwendet werden um eine Boolean Attribut-Definition umzuschalten
Transparenzeditor (com.levigo.jadice.swing.internal.annotation.editors.TransparencyEditor)
Virtueller Editor der nicht an eine Attribut-Definition gebunden werden kann. Dieser Editor dient zum Umschalten der Transparenz von Farben (Linien- / Füllfarbe)
Der Wertebereich der Editoren kann anhand der Attribut-Definition festgelegt werden:
fixed
Ein fester Wert, es können zusätzlich Werte via 'preferred' Element definiert werden, z.B.:
<fixed name="lineWidth" propertyType="java.lang.Float"> <labels> <label locale="en">Line width</label> <label locale="de">Liniendicke</label> </labels> <editor class="com.levigo.jadice.swing.internal.annotation.editors.LineWidthEditor"/> <default>10.0</default> <preferred>0.5</preferred> <preferred>1.0</preferred> <preferred>3.0</preferred> <preferred>5.0</preferred> <preferred>10.0</preferred> </fixed>
discrete
Einzelne Werte, die via 'preferred' Element definiert werden, z.B.:
<discrete name="lineWidth" propertyType="java.lang.Float"> <labels> <label locale="en">Line width</label> <label locale="de">Liniendicke</label> </labels> <editor class="com.levigo.jadice.swing.internal.annotation.editors.LineWidthEditor"/> <default>10.0</default> <preferred>0.5</preferred> <preferred>1.0</preferred> <preferred>3.0</preferred> <preferred>5.0</preferred> <preferred>10.0</preferred> </discrete>
range
Wertebereich, es können zusätzlich Werte via 'preferred' Element angegeben werden, der Wertebereich wird via 'minimum' / 'maximum' Elementen definiert, z.B.:
<range name="lineWidth" propertyType="java.lang.Float"> <labels> <label locale="en">Line width</label> <label locale="de">Liniendicke</label> </labels> <editor class="com.levigo.jadice.swing.internal.annotation.editors.LineWidthEditor"/> <default>10.0</default> <preferred>0.5</preferred> <preferred>1.0</preferred> <preferred>3.0</preferred> <preferred>5.0</preferred> <preferred>10.0</preferred> <minimum>0.5</minimum> <maximum>10.0</maximum> </range>
unrestricted
Uneingeschränkter Wertebereich