Apache Struts 2 Documentation > Home > Guides > Tag Developers Guide > Struts Tags > Tag Reference > UI Tag Reference > tree
Added by Rene Gielen, last edited by Musachy Barroso on Sep 22, 2007  (view change)

To use this tag:

  • Add: <%@ taglib prefix="sx" uri="/struts-dojo-tags" %> to your page.
  • The head tag must be included on the page, which can be configured for performance or debugging purposes.
  • If the parseContent parameter for the head tag is false (it is false by default), then the id tag is required.
Additional Examples

For more examples see Ajax and JavaScript Recipes

Description

Renders a tree widget with AJAX support.

The "id "attribute is normally specified(recommended), such that it could be looked up using javascript if necessary. The "id" attribute is required if the "selectedNotifyTopic" or the "href" attributes are going to be used.

Parameters

Dynamic Attributes Allowed:

false
 

Name

Required

Default

Evaluated

Type

Description

accesskey false false String Set the html accesskey attribute on rendered html element
blankIconSrc false false String Blank icon image source.
childCollectionProperty false false String The childCollectionProperty property.
collapsedNotifyTopics false false String Comma separated lis of topics to be published when a node is collapsed. An object with a 'node' property will be passed as parameter to the topics.
cssClass false false String The css class to use for element
cssErrorClass false false String The css error class to use for element
cssErrorStyle false false String The css error style definitions for element to use
cssStyle false false String The css style to use for element
disabled false false String Set the html disabled attribute on rendered html element
errorNotifyTopics false false String Comma delimmited list of topics that will published after the request(if the request fails).Only valid if 'href' is set
expandIconSrcMinus false false String Expand icon image source.
expandIconSrcPlus false false String Expand Icon image source.
expandedNotifyTopics false false String Comma separated lis of topics to be published when a node is expanded. An object with a 'node' property will be passed as parameter to the topics.
gridIconSrcC false false String Image source for under child item child icons.
gridIconSrcL false false String Image source for last child grid.
gridIconSrcP false false String Image source for under parent item child icons.
gridIconSrcV false false String Image source for vertical line.
gridIconSrcX false false String Image source for grid for sole root item.
gridIconSrcY false false String Image source for grid for last root item.
href false false String Url used to load the list of children nodes for an specific node, whose id will be passed as a parameter named 'nodeId' (empty for root)
iconHeight false 18px false String Icon height
iconWidth false 19px false String Icon width
id false false String The id to use for the element
javascriptTooltip false false false Boolean Use JavaScript to generate tooltips
key false false String Set the key (name, value, label) for this particular component
label false false String Label expression used for rendering an element specific label
labelSeparator false : false String String that will be appended to the label
labelposition false false String Define label position of form element (top/left)
name false false String The name to set for element
nodeIdProperty false false String The nodeIdProperty property.
nodeTitleProperty false false String The nodeTitleProperty property.
onblur false false String Set the html onblur attribute on rendered html element
onchange false false String Set the html onchange attribute on rendered html element
onclick false false String Set the html onclick attribute on rendered html element
ondblclick false false String Set the html ondblclick attribute on rendered html element
onfocus false false String Set the html onfocus attribute on rendered html element
onkeydown false false String Set the html onkeydown attribute on rendered html element
onkeypress false false String Set the html onkeypress attribute on rendered html element
onkeyup false false String Set the html onkeyup attribute on rendered html element
onmousedown false false String Set the html onmousedown attribute on rendered html element
onmousemove false false String Set the html onmousemove attribute on rendered html element
onmouseout false false String Set the html onmouseout attribute on rendered html element
onmouseover false false String Set the html onmouseover attribute on rendered html element
onmouseup false false String Set the html onmouseup attribute on rendered html element
onselect false false String Set the html onselect attribute on rendered html element
openTemplate false false String Set template to use for opening the rendered html.
required false false false Boolean If set to true, the rendered element will indicate that input is required
requiredposition false false String Define required position of required form element (left|right)
rootNode false false String The rootNode property.
selectedNotifyTopics false false String Comma separated lis of topics to be published when a node is selected. An object with a 'node' property will be passed as parameter to the topics.
showGrid false true false Boolean Show grid
showRootGrid false false String The showRootGrid property (default true).
tabindex false false String Set the html tabindex attribute on rendered html element
template false false String The template (other than default) to use for rendering the element
templateCssPath false {contextPath}/struts/tree.css. false String Template css path
templateDir false false String The template directory.
title false false String Set the html title attribute on rendered html element
toggle false fade false String The toggle property (either 'explode' or 'fade')
toggleDuration false 150 false String Toggle duration in milliseconds
tooltip false false String Set the tooltip of this particular component
tooltipConfig false false String Deprecated. Use individual tooltip configuration attributes instead.
tooltipCssClass false StrutsTTClassic false String CSS class applied to JavaScrip tooltips
tooltipDelay false Classic false String Delay in milliseconds, before showing JavaScript tooltips
tooltipIconPath false false String Icon path used for image that will have the tooltip
treeCollapsedTopics false false String Deprecated. Use 'collapsedNotifyTopics' instead.
treeExpandedTopics false false String Deprecated. Use 'expandedNotifyTopics' instead.
treeSelectedTopic false false String Deprecated. Use 'selectedNotifyTopics' instead.
value false false String Preset the value of input element.

Examples

Static tree:

<s:tree id="..." label="...">
   <s:treenode id="..." label="..." />
   <s:treenode id="..." label="...">
       <s:treenode id="..." label="..." />
       <s:treenode id="..." label="..." />
   </s:treenode>
   <s:treenode id="..." label="..." />
</s:tree>

Dynamic tree (rendered on the server):

<s:tree
         id="..."
         rootNode="..."
         nodeIdProperty="..."
         nodeTitleProperty="..."
         childCollectionProperty="..." />

Dynamic tree loaded with AJAX (one request is made for each node):

<s:url id="nodesUrl" namespace="/nodecorate" action="getNodes" />
<div style="float:left; margin-right: 50px;">
    <sx:tree id="tree" href="%{#nodesUrl}" />
</div>

On this example the url specified on the "href" attibute will be called to load
the elements on the root. The response is expected to be a JSON array of objects like:
[
     {
          label: "Node 1",
          hasChildren: false,
          id: "Node1"
     },
     {
          label: "Node 2",
          hasChildren: true,
          id: "Node2"
     },
]

"label" is the text that will be displayed for the node. "hasChildren" marks the node has
having children or not (if true, a plus icon will be assigned to the node so it can be
expanded). The "id" attribute will be used to load the children of the node, when the node
is expanded. When a node is expanded a request will be made to the url in the "href" attribute
and the node's "id" will be passed in the parameter "nodeId".

The children collection for a node will be loaded only once, to reload the children of a 
node, use the "reload()" function of the treenode widget. To reload the children nodes of "Node1"
from the example above use the following javascript:

dojo.widget.byId("Node1").reload();