Die Aufgabe von DocumentLayers ist es, Ebenen eines Dokuments zu definieren, auf denen Seiten mit PageSegments besetzt sein können. In jadice 4 waren DocumentLayer sehr eigenständige, aber auch leider sehr eigensinnige Objekte. Die Identität eines Layers wurde durch die Identität der DocumentLayer-Instanz bestimmt. Zwar hatten DocumentLayers Namen, doch konnten ohne Weiteres zwei Layer gleichen Namens existieren, die aber zwei unterschiedliche Positionen im Ebenenstapel bezeichneten. Jedes Document hatte in der Regel einen eigenen Satz an DocumentLayers und legte darüber hinaus die Reihenfolge der Ebenen selbst fest. Dieses Verhalten war die zweite große Hürde, die das problemlose Verschieben von Seiten zwischen Dokumenten erschwerte oder verhinderte.

In jadice 5 gibt es künftig einen sehr begrenzten und globalen ›Zoo‹ von DocumentLayers, deren Bestand strikt überwacht wird. Vielleicht ist Ihnen beim Document schon aufgefallen, dass dies nichts mehr mit DocumentLayers zu schaffen hat. Dies hat seine Richtigkeit: die Verwaltung der Ebenen erfolgt nun über zwei statischen Methoden in DocumentLayer: get(String) gibt einen Layer für einen gegebenen Namen zurück. Existiert der Layer noch nicht, wird er erzeugt. Dadurch ist sichergestellt, dass zu einem Layer-Namen immer nur eine einzige Instanz von DocumentLayer existiert. Mit get(String, int) kann zusätzlich die standardmäßige Sortierpriorität der einzelnen Ebenen vorgegeben werden, die allerdings nur dann greift, wenn die Ebene noch nicht existierte. Nur in Ausnahmefällen ist es jedoch überhaupt notwendig, eigene Ebenen zu deklarieren. Für die häufigsten Anwendungsfälle existieren in DocumentLayer entsprechende Konstanten, die bevorzugt verwendet werden sollten.

À propos Sortierung: War früher das Document für die Sortierung der Layer zuständig, ist diese Aufgabe nun vollständig den BaseRenderSettings übertragen worden. Dadurch können Seiten zum Beispiel problemlos in zwei Ansichten mit unterschiedlicher Layer-Reihenfolge gerendert werden.

[jadice® document platform 5 Dokumentation. Erstellungsdatum: 2011-08-12]
loading table of contents...