An unterschiedlichen Stellen innerhalb der jadice document platform wird Integratoren die Möglichkeit gegeben, interne Prozesse (wie beispielsweise den Dokument-Rendervorgang) mittels Einstellungen anzupassen. Zu diesem Zweck existiert eine einheitliche abstrakte API die es erlaubt, Einstellungen zu transportieren und thematisch zu gliedern. Die Gliederung erfolgt in drei Stufen:
-
Eine Gesamt-Thematik, für die Einstellungen vorgenommen werden können, wird durch eine Instanz von
ProcessingControls
repräsentiert. -
Die Gesamt-Thematik umfasst verschiedene Teilaspekte. Jeder Aspekt wird durch eine Instanz von
ProcessingSettings
repräsentiert, und umfasst mehrere konkrete Einstellmöglichkeiten. -
Jede konkrete Einstellmöglichkeit wird als Methode innerhalb einer Instanz von
ProcessingSettings
angeboten.
Nur die einzelnen Methoden der ProcessingSettings
erlauben das Verändern
konkreter Einstellungen. Die Settings und Controls Klassen dienen hingegen der
Strukturierung. Jede Realisierung der ProcessingControls
unterstützt mittels Java
Generics bestimmte Ausprägungen von Settings. Für jede konkrete Realisierung von
ProcessingSettings
kann ein Controls Objekt höchstens eine Instanz aufnehmen.
Diese Instanz kann über ihr Klassenobjekt abgefragt werden und wird bei Bedarf
automatisch erstellt.
Durch ihre hohe Flexibilität kann die API auch für Integrationszwecke leicht genutzt werden. Es können sowohl eigene Controls für integrationsspezifische Anwendungsfälle definiert werden, als auch eigene Settings in bestehenden Controls transportiert werden.
Die RenderControls
sind ein Spezialfall der ProcessingControls
und
bieten einen vereinfachten Zugriff auf die am häufigsten verwendeten
ProcessingSettings
. Die in diesem Kontext verwendete Untermenge der
ProcessingSettings
sind die sogenannten RenderSettings
. Innerhalb der
RenderSettings
können verschiedene Einstellungen bezüglich der Darstellung
von Dokumenten gesetzt werden. Für die Anpassung der Settings sollte die
Konfiguration wie in „Konfiguration von Komponenten und Settings mittels
ComponentConfigurer
“ beschrieben
vorgenommen werden.
Die RenderControls
werden in einem RenderControlsInventory
vorgehalten.
Hierbei existiert keine zentrale Instanz, durch die diese
Einstellungen überall gleichartig geregelt werden. Unterschiedliche
RenderControlsInventory
s werden beispielsweise beim Druck in einer
PrintJobConfiguration
oder der Darstellung eines Dokuments mit einer
PageView
verwendet. Das jeweils verwendete Inventory
ist dort
über eine getter-Methode verfügbar.
RenderControls
können entweder seitenweit oder dokumentweit gültig sein.
Damit kann beispielsweise die Drehung einer einzelnen Seite gesetzt werden,
während die Darstellung des restlichen Dokuments davon unberührt bleibt.
Für gleichartige Settings gilt dabei, dass die Einstellungen auf Seitenebene
die Einstellungen auf Dokumentenebene überschreiben. Ist beispielsweise der Zoom
in den RenderControls dokumentweit auf einen Wert gesetzt, aber in den
RenderControls einer einzelnen Seite ein anderer Wert definiert, wird der
dokumentweite Wert nur für diese Seite überschrieben. Die restlichen Settings
(beispielsweise Rotation) werden dabei nicht geändert. Dieses Verhalten ist in
Abbildung 5.1, „Schematische Darstellung zur Ermittlung der
RenderControls
“ schematisch dargestellt.
Diese Settings werden durch jadice nicht automatisch persistiert. Eine eventuelle Speicherung und Wiederherstellung gesetzter Settings muss durch die Integration erfolgen.
Konfiguration von Komponenten und Settings mittels
ComponentConfigurer
Häufig werden in Anwendungen für gewisse Abläufe immer wieder die gleichen Settings erstellt und angepasst. Teilweise ist die Erstellung auch verzweigt und nicht immer direkt von außen zugreifbar. Um als Integrator trotzdem jederzeit die Konfiguration der Settings steuern zu können, wurde eine allgemeingültigere Lösung geschaffen. Diese ermöglicht eine Anpassung von Settings (bzw. allgemein Komponenten) direkt bei jeder Erstellung.
Hierzu werden Implementierungen des Interfaces ComponentConfigurer
erstellt
und beim Start der Anwendung registriert. Die Registrierung erfolgt global über
die Methoden der Klasse Jadice
. Grundsätzlich können alle Klassen angepasst
werden, welche über die create-Methode der Klasse Jadice
erstellt werden. Das
betrifft insbesondere alle Settings-Klassen.
Ein Beispiel hierzu finden Sie unter: Beispiel 7.29, „Beispiel zum Registrieren eines Configurers von Settings“