树形菜单


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;
				}
			}
		}


}

你可能感兴趣的:(菜单)