// "└" "├ "│" "+"
private List<Course> l = new ArrayList<Course>();
private boolean[] aryNodeStatus = new boolean[100];
private void tree(Integer cid, Integer level,boolean[] aryIsLastNode) {
int index = 0;
List<Course> list = (List<Course>) coursedao.findByPid(cid);
for (Course t : list) {
/*
* System.out.println("-----list:" + list.toString());
* System.out.println("-----t:" + t);
* System.out.println("-----list.size():" + list.size());
*/
String symbol = "";
String symbolf = "";
index++;
// System.out.println("-----index:" + index);
// 先画上级节点延续下来的"|"+空格,空格具体数目由层数决定
//System.out.println("-----level:" + level);
for (int lev = 0; lev < level; lev++) {
if(aryIsLastNode[lev]==false)
symbolf += "│";
else
symbolf += " ";
}
// 是否为最后一个节点
if (index == list.size()) {
symbol = "└";
} else {
symbol = "├";
}
String cname = symbolf + symbol + t.getCname();
t.setCname(cname);
// System.out.println("-----t:" + t.getCname());
if (t.getLeaf() == 0) {
l.add(t);
// t.setLeveler(level + 1);
// tree(t.getId(),
// t.getLeveler(),index==list.size()?true:false);
} else {
l.add(t);
t.setLevel(level + 1);
if(index==list.size()){
aryIsLastNode[level]=true;
}
else{
aryIsLastNode[level]=false;
}
tree(t.getCid(), t.getLevel(),aryIsLastNode);
}
}
}
public List<Course> showTree() {
l.clear();
List<Course> list = (List<Course>) coursedao.findByPid(0);
for (Course t : list) {
if (t.getLeaf() != 0) {
l.add(t);
aryNodeStatus[0]=true;
this.tree(t.getCid(), 0, aryNodeStatus);
} else {
l.add(t);
}
}
return l;
}