Attribut-Definitionen

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').

Attribut-Definition mit Editor

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)

  • Rotationeditor (com.levigo.jadice.swing.internal.annotation.editors.RotationEditor)

    Editor zur Rotation entsprechender Annotationen um 90° nach rechts oder links. Kann nur mit Annotationen verwendet werden, welche eine Rotation unterstützen. Momentan sind das:

    • Textannotation (com.levigo.jadice.annotation.TextAnnotation)

    • Stempelannotation (com.levigo.jadice.annotation.StampAnnotation)

  • Editor für horizontale Textausrichtung (com.levigo.jadice.swing.internal.annotation.editors.HorizontalAlignmentEditor)

    Editor um zwischen verschiedenen Ausrichtungen von Text zu wechseln.

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

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