Das TreeControl verwendent bei der Darstellung für geöffnete und geschlossene Knoten vordefinierte Bilder, die sich bei Bedarf einfach austauschen lassen. Jedem Eintrag innerhalb des Baumes kann ein eigenes Bild zugeordnet werden.
Eine Möglichkeit hierzu stellt die Verwendung einer ImagMap dar. Diese wird außerhalb des Baumes in der JSP-Seite deklariert und dem TreeControl über das Attribut "imagemap" zugeordnet.
<%@ taglib uri="/WEB-INF/tlds/cc-controls.tld" prefix="ctrl" %>
<%@ taglib uri="/WEB-INF/tlds/cc-utility.tld" prefix="util" %>
<util:imagemap name="imap_products">
<util:imagemapping
rule="prodgroup.open"
src="images/imgBoxOpen.gif"
width="16" height="16"/>
<util:imagemapping
rule="prodgroup.closed"
src="images/imgBoxClosed.gif"
width="16" height="16"/>
<util:imagemapping
rule="product"
src=" images/imgItem.gif"
width="16" height="16"/>
</util:imagemap>
<ctrl:tree
id="prodtree1"
name="products"
action="sample201/productBrowse"
root="true"
linesAtRoot="true"
labelProperty="name"
imageProperty="type"
imagemap="imap_products"
expandMode="multiple"
groupselect="true"
checkboxes="true"/>
Arbeitsweise:
Bei der Darstellung des Baumes liefert das Datenmodel über die Methode getType() jeweils einen Ausdruck zurück, der mit der ImageMap verglichen wird. Bei einer Übereinstimmung mit einer Regel wird das entsprechende Bild gezeichnet. Für geschlossene und geöffnete Knoten, werden diese Ausdrücke automatisch um das Suffix ".open" bzw. ".closed" erweitert, so dass sich unterschiedliche Bilder für die unterschiedlichen Zustände verwenden lassen. Die Angabe der Regeln erfolgt mit regulären Ausdrücken.
Die Methode, welche den Ausdruck für das zuzeichnende Bild liefert, wird über das Attribut "imageProperty" bestimmt. In unserem Beispiel wird das type-Property verwendet, welches für Gruppen stets "prodgroup" und für einzelne Blätter stets "product" liefert.
zurück |
Layouts
|