/** * Rebuilds children of every item in dirtyItems that needs it. This method is called for * non-partial update. */ private void rebuildDirty() { // go through dirty items for (TreeItem item : dirtyItems) { // item children need to be rebuilt if (item.getChildren() == null) { buildItemChildren(item); } } }
/** * Builds (recursively) TreeItems for the given Iterator of TreeNodes. * * @param parent * @param nodes * The nodes to build tree items for * @param level * The current level * @return List with new tree items */ private List<TreeItem> buildTreeItems(TreeItem parent, Iterator<Object> nodes, int level) { List<TreeItem> result = new ArrayList<TreeItem>(); // for each node while (nodes.hasNext()) { Object node = nodes.next(); // create tree item TreeItem item = newTreeItem(parent, node, level); itemContainer.add(item); // builds it children (recursively) buildItemChildren(item); // add item to result result.add(item); } return result; }