基本特性
Tree提供nodes属性让你添加一个数组或一个EntityList对象,然后将这些对象按照树节点的方式添加到Tree中。

Tree继承Control对象,因此也具有Control控件的基本特性,详情请参考:Control(DCUG)
使用简介
简单场景中,我们可以直接在View的设计器中添加树节点,如:

或者通过JS编码设置nodes属性:
// @Bind #treeView.onCreate
!function(self, arg) {
self.set("nodes",[{
label:"General",
icon:"images/folder.gif",
nodes:[{
label:"DataSet",
icon:"images/view/DataSet.gif"
},{
label:"Control",
icon:"images/view/Control.gif"
},{
label:"Container",
icon:"images/view/Container.gif"
},{
label:"HtmlContainer",
icon:"images/view/HtmlContainer.gif"
},{
label:"SubViewHolder",
icon:"images/view/SubViewHolder.gif"
}]
},{
label:"Action",
icon:"images/folder.gif",
nodes:[{
label:"Action",
icon:"images/view/Action.gif"
},{
label:"AjaxAction",
icon:"images/view/AjaxAction.gif"
},{
label:"UpdateAction",
icon:"images/view/UpdateAction.png",
nodes:[{
label:"UpdateItem",
icon:"images/view/UpdateItem.gif",
}]
},{
label:"FormSubmitAction",
icon:"images/view/FormSubmitAction.gif"
}]
}
]);
}
树节点
树节点的详细说明请参考: Node。
详细属性说明
allowNoCurrent
当此属性为true时,如果用户点击了Tree中空白区域后,当前树节点将被设置为空。如下的动画中我们选择了其中的一个树节点,这个树节点就有一个绿色背景,这个时候将鼠标移到Tree的空白区域,并单击后选中树节点的绿色背景就消失:

默认值为false,当这个值为false时,激活的树节点的背景色就始终存在:

currentNode
通过currentNode可以获得当前激活的树节点对象,如:

var currentNode = treeView.get("currentNode");
dorado.MessageBox.alert(currentNode.get("label"));

defaultIcon和defaultExpandedIcon
Tree通过这两个属性设置默认的节点图标,当然你也可以直接设置到Node节点上。
defaultIcon与defaultExapndedIcon的差别通过如下的比较图区分:
| 效果差异说明 |
Action节点未展开前显示的是defaultIcon的图标 |
Action节点展开后显示的是defaultExpandedIcon的图标 |
defaultIconClass和defaultExpandedIconClass
defaultIconClass与defaultExpandedIconClass的属性是分别设置defaultIcon与defaultExapndedIcon的css效果的。
expandingAnimated
该属性控制拥有子节点的父节点在展开是是否有一个动画效果。
expandingMode
节点展开的同步模式,默认为异步展开。
firstNode
返回树中的第一个有效节点。如:

var firstNode = treeView.get("firstNode");
dorado.MessageBox.alert(firstNode.get("label"));

如果当前树中没有节点该属性的返回值为null.
highlightCurrentRow
该属性用于控制是否高亮显示当前行。highlightCurrentRow的默认值为true。
| 显示效果差异说明 |
highlightCurrentRow为true |
highlightCurrentRow为false |
highlightHoverRow
该属性设置当光标在Tree节点的上方移动的时候是否高亮显示鼠标悬停的行。如果设置为false就会关闭这种特效。

highlightSelectedRow
该属性用于关闭下图中当前选中树节点选中高亮背景显示的效果,当时并不影响Tree的selectionMode功能(后面将会详细说明selectionMode属性)

indent
每一层子节点相对于父节点的缩进距离。
| 显示效果比较 |
indent默认值18 |
indent值设置为50 |
root
root是系统自动创建的根节点,其它节点都位于root节点的下面。同样root节点是不可见的它是为管理树节点而提供的一个根节点。不过通过JS代码可以访问到:

var nodes = treeView.root.get("nodes");
var labelStr = "";
nodes.each(function(node){
labelStr+=node.get("label")+"\n";
});
dorado.MessageBox.alert(labelStr);

rowHeight
在PC中浏览Tree的默认行高为24,移动设备上默认的行高为30.
当然你也可以调整行高:
| 显示效果差异说明 |
rowHeigh为24 |
rowHeight为50 |
看起来后面的页面效果稍嫌粗糙,但是在移动设备上或许后面的页面效果会更好,或对老年人来说可能更喜欢后面的界面效果。
scrollMode
该功能机制与BlockView中的scrollMode一样,详情请参考:BlockView(DCUG)
selectionMode和selection
当selectionMode为singleRow或multiRows时,你可以通过ctrl或者shift快捷键选中多个树节点。

并且通过Tree的selection属性访问:
var nodes = treeView.get("selection");
var labelStr = "";
nodes.each(function(node){
labelStr+=node.get("label")+"\n";
});
dorado.MessageBox.alert(labelStr);
selectionMode的默认值为none,表示默认不支持ctrl或shift快捷键。
showLines
Tree提供showLines用于控制节点之间是否显示虚线连接。
| 显示效果差异说明 |
showLines为false |
showLines为true |






