Oracle Fusion Middleware Blog

Deutsche Informationen rund um Oracle Fusion Middleware

Hierarchische Darstellung (Tree Controls) in ADF Faces 11g

leave a comment »

In ADF Faces 11g gibt es zwei Komponenten, mit denen man hierarchisch strukturierte Daten als Baumstruktur darstellen kann. Ich habe beide Komponenten getestet und möchte die Ergebnisse kurz zusammenstellen.

  1. Tree-Komponente (af:tree)
    Sie eignet sich gut zur Navigation, zum Beispiel in einem speziellen Layout-Bereich. Die Knoten können zu- und aufgeklappt werden, aber die Fokussierung auf eine ausgewählte Zeile ist nicht möglich. Die Implementierung ist, geeignete Datenstrukturen vorausgesetzt, ist sehr einfach. Eine Synchronisierung zwischen der ausgewählten Zeile und einer Detaildarstellung der Daten als Tabelle oder Form ist möglich. Eine gute Anleitung findet man hier.

    Komponente af:tree

    Komponente af:tree

  2. Tree Table-Komponente (af:treeTable)
    Diese Komponente ähnelt einer ADF Table und eignet sich zur übersichtlichen Darstellung von hierchisch strukturierten Daten. Die Knoten können zu- und aufgeklappt werden, auch die Fokussierung auf eine ausgewählte Zeile ist möglich. Die Implementierung ist identisch wie bei der Komponente af:tree. Allerdings kann man nach dem Anlegen der Komponente der Tabelle weitere Spalten hinzufügen, indem aus der Component Palette des JDeveloper die Komponente af:column der Tabelle beliebig oft hinzugefügt wird. Anschließend können Attribute in die noch leeren Spalten gezogen werden. Das Binding dieser Attribute muss so geändert werden, dass es sich auf den ausgewählten Knoten der Hierarchie bezieht (#{node.<attribut>}. Benutzt man den Expression Builder ist die Code Completion bei der Auswahl hilfreich.

    Komponente af:treeTable

    Komponente af:treeTable

Eine statische Überschrift pro Knotenzeile kann man hinzufügen, indem man die entsprechende af:column auswählt und den Text im Property HeaderText einfügt.

Will man Zwischensummen pro Knoten der Hierarchie bilden, so gibt es dafür mehrere Möglichkeiten (siehe Kapitel 9 im Buch „Oracle Fusion Developer Guide – Building Rich Internet Applicatgions with Oracle ADF Business Components and Oracle ADF Faces“ von Frank Nimphius und Lynn Munsinger).
Eine sehr elegante Möglichkeit besteht darin, zwei Komponenten af:outputText in eine af:column zu packen:

<af:column id=“c6“>
<af:outputText value=“#{node.sumValue}” id=”ot9” inlineStyle=”font-weight:bold;”/>
<af:outputText value=“#{node. Value}” id=”ot7” inlineStyle=”text-align:right;”/>
</af:column>

Durch das Rendering der Tree Table (Stamping Behaviour) wird erreicht, dass pro Zeile nur der verfügbare Wert angezeigt wird, d.h. in einer Detailzeile der Wert Value und in der Knotenzeile der Hierarchie die Summe sumValue.

Eine ausführliche Beschreibung der Funktionsweise beider Komponenten findet man im Fusion Developer’s Guide ADF 11g. Sehr hilfreich ist auch der Blog-Eintrag von Andrejus Baranovski.
<JM>

Written by fmtechteam

09/04/2010 um 15:13

Veröffentlicht in ADF, Jürgen Menge

Tagged with ,

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: