Map<String, AntdTreeNode> map = new HashMap<>(16);
mapList.forEach(m -> map.put(m.get(idField).toString(),
convertToAntdTreeNodeFromMap(m, parentIdField, textField, keyField, valueField)));
List<AntdTreeNode> treeList = new ArrayList<>();
for (Map mm : mapList) {
String curId = mm.get(idField).toString();
String curPid = mm.get(parentIdField) == null ? null : mm.get(parentIdField).toString();
AntdTreeNode parent = map.get(curPid);
if (parent == null || curId.equals(curPid)) {
treeList.add(map.get(curId));
} else {
if (parent.getChildren() == null) {
parent.setChildren(new ArrayList<>());
}
parent.getChildren().add(map.get(curId));
parent.setIsLeaf(false);
if (parentDiabled) {
parent.setDisableCheckbox(true);
parent.setDisabled(true);
parent.setSelectable(false);
}
}
}
return treeList;