Rotation von Textannotationen

Gültig ab jadice documentplatform 5.5.3.0
Dieser Artikel beschreibt, wie das Annotationsprofil zu konfigurieren ist, um Textannotationen relativ zur Seitenausrichtung zu drehen.
Gültig ab jadice web toolkit 5.8.3.0
Dieser Artikel beschreibt, wie das Annotationsprofil zu konfigurieren ist, um Textannotationen relativ zur Seitenausrichtung zu drehen.

Neue Funktionen

  • Freies Rotieren von Textannotationen
  • Textannotationen bei gedrehten Seiten in einem lesbaren Zustand anbringen
  • Editor zur Drehung von Textannotationen um 90°

Bitte beachten Sie, dass die Speicherung der Rotation nur mit Formaten, welche ein solches Attribut unterstützen, funktioniert. Dies sind:

  • jadice Annotationsformat
  • ContentManager-Annotationsformat (mit der Einschränkung, dass die Funktionalität nur zur Verfügung steht, wenn die Annotationen ausschließlich über jadice-Komponenten geschrieben und gelesen werden). Bei ContentManager-Annotationen muss wie im folgenden gezeigt beim Speichern der Annoationen noch setSaveAdditionalInfo(true) gesetzt werden.
 Codebeispiel einblenden
WriterSettings für Annotationen im CM-Format
DefaultWriterControls writerControls = new DefaultWriterControls();
writerControls.getSettings(CMAnnotationWriterSettings.class).setFormat(format);
writerControls.getSettings(CMAnnotationWriterSettings.class).setSaveAdditionalInfo(true);


Erklärung der Attribute

NameTypDefaultHerkunftBedeutung
rotation<integer>0TextAnnotationDie Rotation selbst wird wie beim Stempel in der Annotation selbst gespeichert. Hierbei handelt es sich um einen Wert, welcher die Rotation (0-359) in Grad darstellt. 
showRotationHandle

<true>, <false>

falseTextAnnotationWranglerDieser Wert gibt an, ob der Handle zur freien Rotation dargestellt wird. 
forceAnnotationUpRight<OFF>, <ON_CREATION>OFFTextAnnotationWranglerÜber dieses Attribut wird festgelegt, ob Textannotationen beim Aufbringen in einem lesbaren Zustand in Relation zu der Seite aufgebracht werden.


Hinweis: Sofern showRotationHandle oder forceAnnotationUpright verwendet werden, muss die Eigenschaft  rotation beim  betreffenden <annotation-type> in das Profil übernommen werden, um die gesetzte Rotation zu speichern. 


Beispiele für den jadice viewer

Beispiel: Einbinden der Rotation (nur jadice Annotationsformat)

 Codebeispiel einblenden
Definition der Rotation und des Editors
<annotation-type name="Text" archetype="Text" extends="Rectangle" class="com.levigo.jadice.annotation.TextAnnotation">
	<unrestricted name="rotation" propertyType="java.lang.Integer">
		<default>0</default>
		<editor toolkit="swing" class="com.levigo.jadice.swing.internal.annotation.editors.RotationEditor"/>
	</unrestricted>
...

Zum Speichern der Rotation relativ zum Dokument ist bei Nutzung des jadice-Annotationsformats in allen Anwendungsfällen die Konfiguration der Property "rotation" nötig. Bei ContentManager-Annotationen entfällt diese Konfiguration.

Beispiel: Verwendung des RotationEditors

 Codebeispiel einblenden
Definition der Rotation und des Editors
<annotation-type name="Text" archetype="Text" extends="Rectangle" class="com.levigo.jadice.annotation.TextAnnotation">
	<unrestricted name="rotation" propertyType="java.lang.Integer">
		<default>0</default>
		<editor toolkit="swing" class="com.levigo.jadice.swing.internal.annotation.editors.RotationEditor"/>
	</unrestricted>
...

Sofern die Rotation manuell durch den Anwender verändert werden soll, kann zusätzlich der RotationEditor eingebunden werden.

Beispiel: Den Handle für freie Rotation anzeigen

 Codebeispiel einblenden
Anzeigen des Rotation-Handles
<annotation-type name="Note" archetype="Note" extends="Text" class="com.levigo.jadice.annotation.TextAnnotation">
	<wrangler class="com.levigo.jadice.swing.internal.annotation.wranglers.TextAnnotationWrangler">
		<property name="showRotationHandle">true</property>
	</wrangler>
...

Diese Konfiguration wird nur benötigt, wenn - vergleichbar den Stempelannotationen - eine freie Drehung der Textannotationen durch den Benutzer erlaubt werden soll.

Beispiel: Textannotation immer lesbar erstellen

 Codebeispiel einblenden
Annotation immer lesbar erstellen
<annotation-type name="Note" archetype="Note" extends="Text" class="com.levigo.jadice.annotation.TextAnnotation">
	<wrangler class="com.levigo.jadice.swing.internal.annotation.wranglers.TextAnnotationWrangler">
		<property name="forceAnnotationUpRight">ON_CREATION</property>
	</wrangler>
...

Dies ist einer der häufigsten Anwendungsfälle. Auf einer gedrehten Seite sollen Textannotationen immer "aufrecht" (also ohne Kopfverdrehen lesbar) angebracht werden. 

Beispiel: Gesamte Textannotation mit allen hier beschriebenen Eigenschaften

 Codebeispiel einblenden
Gesamte Definition
<annotation-type name="Note" archetype="Note" extends="Text" class="com.levigo.jadice.annotation.TextAnnotation">
	<renderer class="com.levigo.jadice.annotation.internal.renderer.TextAnnotationRenderer">
		<property name="lineWrap">CHARACTER_CR</property>
	</renderer>
	<wrangler class="com.levigo.jadice.swing.internal.annotation.wranglers.TextAnnotationWrangler">
		<property name="forceAnnotationUpRight">ON_CREATION</property>
		<property name="showRotationHandle">true</property>
	</wrangler>
	<unrestricted name="rotation" propertyType="java.lang.Integer">
		<default>0</default>
		<editor toolkit="swing" class="com.levigo.jadice.swing.internal.annotation.editors.RotationEditor"/>
	</unrestricted>

	<labels>
		<label locale="en">Note</label>
		<label locale="de">Textnotiz</label>
	</labels>

	<unrestricted name="text" propertyType="java.lang.String">
		<default>Note-Annotation</default>
	</unrestricted>

	<color name="fillColor" allow-transparency="false">
		<labels>
			<label locale="en">Fill color</label>
			<label locale="de">Füllfarbe</label>
		</labels>
		<editor class="com.levigo.jadice.swing.internal.annotation.editors.ColorEditor">
			<property name="iconName">fillColor</property>
		</editor>

		<default>#ffff00</default>
		<preferred>#ff0000</preferred>
	</color>

	<color name="textColor" allow-transparency="false">
		<labels>
			<label locale="en">Text color</label>
			<label locale="de">Schriftfarbe</label>
		</labels>
		<editor class="com.levigo.jadice.swing.internal.annotation.editors.ColorEditor">
			<property name="iconName">textColor</property>
		</editor>
		<default>#000000</default>
		<preferred>#000000</preferred>

	</color>
</annotation-type>

Beispiele für das jadice web toolkit

Beispiel: Einbinden der Rotation (nur jadice Annotationsformat)

 Codebeispiel einblenden
Definition der Rotation
<annotation-type name="Text" archetype="Text" extends="Rectangle" class="com.levigo.jadice.annotation.TextAnnotation">
	<unrestricted name="rotation" propertyType="java.lang.Integer">
		<default>0</default>
	</unrestricted>
...

Zum Speichern der Rotation relativ zum Dokument ist bei Nutzung des jadice-Annotationsformats in allen Anwendungsfällen die Konfiguration der Property "rotation" nötig. Bei ContentManager-Annotationen entfällt diese Konfiguration.

Beispiel: Den Handle für freie Rotation anzeigen

 Codebeispiel einblenden
Anzeigen des Rotation-Handles
<annotation-type name="Note" archetype="Note" extends="Text" class="com.levigo.jadice.annotation.TextAnnotation">
	<wrangler toolkit="gwt" class="com.levigo.jadice.web.client.internal.annotation.wrangler.TextAnnotationWrangler">
		<property name="showRotationHandle">true</property>
	</wrangler>
...

Diese Konfiguration wird nur benötigt, wenn - vergleichbar den Stempelannotationen - eine freie Drehung der Textannotationen durch den Benutzer erlaubt werden soll.

Beispiel: Textannotation immer lesbar erstellen

 Codebeispiel einblenden
Annotation immer lesbar erstellen
<annotation-type name="Note" archetype="Note" extends="Text" class="com.levigo.jadice.annotation.TextAnnotation">
	<wrangler toolkit="gwt" class="com.levigo.jadice.web.client.internal.annotation.wrangler.TextAnnotationWrangler">
		<property name="forceAnnotationUpright">ON_CREATION</property>
	</wrangler>
...

Dies ist einer der häufigsten Anwendungsfälle. Auf einer gedrehten Seite sollen Textannotationen immer "aufrecht" (also ohne Kopfverdrehen lesbar) angebracht werden.