5. April 2007

ADF TreeTable und Tree Controls zeigen Aufklapp-Symbol obwohl keine Kindelemente vorhanden sind

Problem: Das JSF ADF-Control TreeTable und Tree stellt Daten in hierachischer Form dar.
Es kann vorkommen, dass ein Element ein Aufklapp-Icon hat, obwohl es keine Kindelement hat.

Ursache: Die Kindelement-Variable ist nicht null, sondern hat nur die size=0. Das Control muss aber null vorfinden, damit es das Aufklapp-Icon nicht anzeigt.

Lösung: Die Methode isContainer() überschreiben. Diese Methode wird vom Control verwendelt, um zu ermitteln ob es Kindelemente gibt.

new ChildPropertyTreeModel(serv, "childValues") {
public boolean isContainer() {
if (getRowData() != null) {
IGuardValues value = (IGuardValues) getRowData();

if (value.getChildValues() != null &&

value.getChildValues().size() > 0) {
return true;
}

}