public static List<EasyUiTreeItem> generate(List dataList) {
return null;
}
public static List<EasyUiTreeItem> generateFromList(List<EasyUiTreeItem> dataList) {
List<EasyUiTreeItem> ret = new LinkedList<>();
for (Iterator<EasyUiTreeItem> iterator = dataList.iterator(); iterator.hasNext(); ) {
EasyUiTreeItem easyUiTreeItem = iterator.next();
if (easyUiTreeItem.isRoot()) {
ret.add(easyUiTreeItem);
iterator.remove();
}
}
for (EasyUiTreeItem easyUiTreeItem : ret) {
buildChildren(easyUiTreeItem, dataList);
}
if (dataList != null) {
ret.addAll(dataList);
}
return ret;
}
private static void buildChildren(EasyUiTreeItem node, List<EasyUiTreeItem> dataList) {
for (Iterator<EasyUiTreeItem> iterator = dataList.iterator(); iterator.hasNext(); ) {
EasyUiTreeItem easyUiTreeItem = iterator.next();
if (node.getId().equals(easyUiTreeItem.getPid())) {
if (node.getChildren() == null) {
node.setChildren(new LinkedList<EasyUiTreeItem>());
}
node.getChildren().add(easyUiTreeItem);
iterator.remove();
}
}
List<EasyUiTreeItem> children = node.getChildren();
for (EasyUiTreeItem child : children) {
buildChildren(child, dataList);
}
}
EasyUiTreeItem对象:
public class EasyUiTreeItem<T> {
private boolean isRoot;
private String id;
private String pid;
private String text;
private String state;
private Boolean checked;
private T attributes;
private List<EasyUiTreeItem> children;
private String iconCls;
public boolean isRoot() {
return isRoot;
}
public void setRoot(boolean root) {
isRoot = root;
}
public EasyUiTreeItem() {
this.children = new LinkedList<>();
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPid() {
return pid;
}
public void setPid(String pid) {
this.pid = pid;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public Boolean getChecked() {
return checked;
}
public void setChecked(Boolean checked) {
this.checked = checked;
}
public T getAttributes() {
return attributes;
}
public void setAttributes(T attributes) {
this.attributes = attributes;
}
public List<EasyUiTreeItem> getChildren() {
return children;
}
public void setChildren(List<EasyUiTreeItem> children) {
this.children = children;
}
public String getIconCls() {
return iconCls;
}
public void setIconCls(String iconCls) {
this.iconCls = iconCls;
}
}