/** * Builds the children for given TreeItem. It recursively traverses children of it's TreeNode * and creates TreeItem for every visible TreeNode. * * @param item * The parent tree item */ private void buildItemChildren(TreeItem item) { List<TreeItem> items; // if the node is expanded if (isNodeExpanded(item.getModelObject())) { // build the items for children of the items' treenode. items = buildTreeItems(item, nodeChildren(item.getModelObject()), item.getLevel() + 1); } else { // it's not expanded, just set children to an empty list items = new ArrayList<TreeItem>(0); } item.setChildren(items); }