public interface INode<T>{
//返回节点ID
public String getNodeId();
//返回父节点ID
public String getParentId();
//返回节点名称
public String getTitle();
//往节点中添加子节点
public void addChild(INode<T> child);
//往节点中批量添加子节点
public void addChildren(Collection<INode<T>> children);
//获得所有的子节点
public Collection<INode<T>> getChildren();
}
public abstract class TreeEntity implements INode{
//存放该菜单下的所有子菜单
private Collection<INode> children = new ArrayList<INode>();
@Override
public void addChild(INode child) {
// TODO Auto-generated method stub
children.add(child);
}
//往节点中批量添加子节点
public void addChildren(Collection children){
this.children.addAll(children);
}
@Override
public Collection getChildren() {
// TODO Auto-generated method stub
return children;
}
}
public class X extends TreeEntity implements Serializable,Comparable<X>{
//返回节点ID
@Override
@Transient
public String getNodeId() {
// TODO Auto-generated method stub
return this.getFid();
}
//返回节点名称
@Override
@Transient
public String getTitle() {
// TODO Auto-generated method stub
return this.fname;
}
@Transient
//获得父节点ID
public String getParentId() {
// TODO Auto-generated method stub
if(this.fpid == null ){
return null;
}else{
return this.fpid;
}
}
@Override
//定义对象比较规则
public int compareTo(SysStudycentre o) {
// TODO Auto-generated method stub
if(this.getFsort().compareTo(o.getFsort()) > 0){
return -1;
}else if(this.getFsort().compareTo(o.getFsort()) < 0)
{
return 1;
}else{
if(this.fid.compareTo(o.getFid()) > 0){
return 1;
}else if(this.fid.compareTo(o.getFid()) < 0){
return -1;
}else{
return 0;
}
}
}
}