if (nodes == null || nodes.size() == 0) {
return null;
}
html.append("<ul>");
for (int i = 0; nodes != null && i < nodes.size(); i++) {
TreeNode treeNode = nodes.get(i);
// htmlsrc
html.append("<li");
if (this.isLeaf(tree,treeNode)) {// 叶子
if(i == nodes.size() -1){//last
this.prepareAttribute(html, "class","last");
}
} else {// 父节点
if(i == nodes.size() -1){//last
this.prepareAttribute(html, "class","closed lastclosed");
}else{
this.prepareAttribute(html, "class","closed");
}
this.prepareAttribute(html, TreeService.TREE_PARENTID_VAR,tree.getId());
}
// params
Map<String, Object> allParam = new HashMap<String, Object>();
if (parameters != null) {
allParam.putAll(parameters);
}
Map<String, String> treeNodeParameters = treeNode.getParameters();
if (treeNodeParameters != null) {
allParam.putAll(treeNodeParameters);
}
allParam.remove(TreeService.TREE_ID_VAR);
allParam.remove(TreeService.TREE_PARENTID_VAR);
prepareParameters(html, allParam);
// url
if (treeNode.getUrl() != null) {
this.prepareAttribute(html, "url", treeNode.getUrl());
}
// otherAttributes
Map<String, String> attributes = treeNode.getAttributes();
if (attributes != null) {
Iterator<String> attributeKeys = treeNode.getAttributes()
.keySet().iterator();
while (attributeKeys.hasNext()) {
String att = attributeKeys.next();
prepareAttribute(html, att, treeNode.getAttributes().get(
att));
}
}
// end otherAttributes
// end <li>
html.append(" >");
// span
if (this.isLeaf(tree,treeNode)) {
html.append("<span class='file'>");
}else{
if(i == nodes.size() -1){//last folder
html.append("<div class='hit closed-hit lastclosed-hit' onclick='$att(this);'></div>");
}else{
html.append("<div class='hit closed-hit' onclick='$att(this);'></div>");
}
html.append("<span class='folder' onclick='$att(this);'>");
}
// a
html.append("<a href='javascript:void(0);' onclick='$atc(this)'>");
html.append(StringEscapeUtils.escapeHtml(treeNode.getText()));
html.append("</a>");
html.append("</span>");
//end </li>
html.append("</li>");