目标:读取一个层次架构构树。
主程序:
var treeSource=data.treeNode;
var treeNode = new Array();
if(treeSource){
// 递归获取子node
treeNode.push({name:treeSource.name, value:treeSource.value, children:$biosMain.getTreeNode(treeSource.children),
nodeType:treeSource.nodeType, itemStyle: {normal: {color: $biosMain.getItemStyle(treeSource.nodeType)}}});
data.treeNode是一个java对象,见: 递归例子(Java) http://blog.csdn.net/textboy/article/details/46544115
FileOrganizationNode treeNode = new FileOrganizationNode();
public class FileOrganizationNode {
private String name;
private Integer value;
private String nodeType;
private List<FileOrganizationNode> children;
getTreeNode方法:
// 递归获取子node
getTreeNode:function(treeSource){
if(treeSource){
var childNode = new Array();
$.each(treeSource, function(i, item){
childNode.push({name:item.name, value:item.value, children:$biosMain.getTreeNode(item.children), nodeType:item.nodeType,
itemStyle: {normal: {color: $biosMain.getItemStyle(item.nodeType)}}});
});
return childNode; // 通过return childNode串联递归
}
return null;
},
getItemStyle:function(nodeType){
if ("person" == nodeType) {
return '#cc9999';
} else if ("dept" == nodeType) {
return '#cc3333';
}
return '';
}
treeNode内容: