1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.primefaces.extensions.component.orgchart;
23
24 import java.util.ArrayList;
25 import java.util.HashMap;
26 import java.util.List;
27 import java.util.Map;
28
29
30
31
32
33
34
35
36 public class OrgChartHelper {
37
38 private OrgChartHelper() {
39
40 }
41
42 public static List<OrgChartNode> getAllNodesTraverseFromRoot(final OrgChartNode root) {
43 final List<OrgChartNode> orgChartNodes = new ArrayList<>();
44
45 treeTraversal(root, orgChartNodes);
46
47 return orgChartNodes;
48 }
49
50 public static Map<String, OrgChartNode> parseOrgChartNodesIntoHashMap(
51 final List<OrgChartNode> orgChartNodes) {
52
53 final HashMap<String, OrgChartNode> hashMap = new HashMap<>();
54
55 if (orgChartNodes != null && !orgChartNodes.isEmpty()) {
56
57 if (null == orgChartNodes.get(0).getId() || orgChartNodes.get(0).getId().isEmpty()) {
58 return hashMap;
59 }
60 else {
61 for (final OrgChartNode o : orgChartNodes) {
62 hashMap.put(o.getId(), o);
63 }
64 }
65 }
66
67 return hashMap;
68 }
69
70 private static void treeTraversal(final OrgChartNode orgChartNode, final List<OrgChartNode> orgChartNodes) {
71 if (orgChartNode.getChildCount() > 0) {
72 for (final OrgChartNode o : orgChartNode.getChildren()) {
73 treeTraversal(o, orgChartNodes);
74 }
75 }
76 orgChartNodes.add(orgChartNode);
77 }
78
79 }