/** Note: it doesn't call render doCatch/doFinally */ private void renderItem0(Renderer renderer, Treeitem item, Object node) throws Throwable { if (item.isLoaded()) //all direct children are loaded return; /* * After modified the node in tree model, if node is leaf, * its treechildren is needed to be dropped. */ Treechildren tc = item.getTreechildren(); if (_model.isLeaf(node)) { if (tc != null) tc.detach(); //just in case //no children to render //Note item already rendered, so no need: //renderer.render(item, node); } else { if (tc != null) tc.getChildren().clear(); //just in case else { tc = new Treechildren(); tc.setParent(item); } renderChildren(renderer, tc, node); } Object v = item.getAttribute(Attributes.MODEL_RENDERAS); if (v != null) //a new item is created to replace the existent one (item = (Treeitem) v).setOpen(false); item.setLoaded(true); }
Treechildren tc = item.getTreechildren(); _renderer.render(item, node, index); Object newTreeitem = item.getAttribute(Attributes.MODEL_RENDERAS); if (newTreeitem instanceof Treeitem) { Treeitem newItem = ((Treeitem) newTreeitem);
private void renderChildren0(Renderer renderer, Treechildren parent, Treeitem ti, Object childNode, int i) throws Throwable { renderer.render(ti, childNode, i); Object v = ti.getAttribute(Attributes.MODEL_RENDERAS); if (v != null) { //a new item is created to replace the existent one (ti = (Treeitem) v).setOpen(false);