package com.bigfat.treeview.utils;
import java.util.ArrayList;
import java.util.List;
/**
* @author <a href="mailto:fbzhh007@gmail.com">bigfat</a>
* @since 2015/2/10
*/
public class Node {
private int id;
/**
* 根节点pId为0
*/
private int pId = 0;
private String name;
/**
* 树的层级
*/
private int level;
/**
* 是否是展开的
*/
private boolean isExpand = false;
private int icon;
private Node parent;
private List<Node> children = new ArrayList<>();
public Node(int id, int pId, String name) {
this.id = id;
this.pId = pId;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getpId() {
return pId;
}
public void setpId(int pId) {
this.pId = pId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getLevel() {
return parent == null ? 0 : parent.getLevel() + 1;
}
public void setLevel(int level) {
this.level = level;
}
public boolean isExpand() {
return isExpand;
}
public void setExpand(boolean isExpand) {
this.isExpand = isExpand;
if (!isExpand) {
for (Node node : children) {
node.setExpand(false);
}
}
}
public int getIcon() {
return icon;
}
public void setIcon(int icon) {
this.icon = icon;
}
public Node getParent() {
return parent;
}
public void setParent(Node parent) {
this.parent = parent;
}
public List<Node> getChildren() {
return children;
}
public void setChildren(List<Node> children) {
this.children = children;
}
/**
* 是否是根节点
*/
public boolean isRoot() {
return parent == null;
}
/**
* 父节点是否是展开状态
*/
public boolean isParentExpand() {
if (parent == null) {
return false;
}
return parent.isExpand();
}
/**
* 是否是叶节点
*/
public boolean isLeaf() {
return children.size() == 0;
}
}