Thanks for the suggestion. It worked for me! I wish I understand more about it. Is there any documentation on it? I hope I am not losing anything by using the transient mode. I tried to trace my code in the debugging mode. The getTreeModel() still got called twice except both times returned the same treeState.
Jane -----Original Message----- From: Andrew Robinson [mailto:[EMAIL PROTECTED] Sent: Tuesday, July 25, 2006 3:57 PM To: MyFaces Discussion Subject: Re: tree2: update treeModel on the server Stab in the dark (almost): Try setting the tree model's tree state to transient. I have seen some weird behaviors when the default (non-transient) is used. I don't fully understand it (didn't spend the time learning the source code for the control), but it has something to do with the tree model, tree state and/or tree nodes being cached when transient is false. -Andrew On 7/25/06, Jiang, Jane (NIH/NCI) [C] <[EMAIL PROTECTED]> wrote: > > > Hi all, > > I am having problem updating the tree model. Here is my short code sample > > JSP > <h:commandLink value="Refresh tree" action="#{treeBacker.refreshTree}"/> > <br/><br/> > > <!-- Expand/Collapse Handled By Server --> > <t:tree2 id="serverTree" value="#{treeBacker.treeModel}" var="node" > varNodeToggler="t" clientSideToggle="false" binding="#{treeBacker.tree}"> > > TreeBacker.java > > ... public String refreshTree() { > treeData.refreshTree(); > _treeModel = new TreeModelBase(treeData.getTreeData()); > return null; > } > public TreeModel getTreeModel() { > if (_treeModel == null) { > _treeModel = new TreeModelBase(treeData.getTreeData()); > _treeModel.getTreeState().toggleExpanded("0"); > } > > return _treeModel; > } > > I setup breakpoint to see what is going on. It seems like refreshTree() get > called, _treeModel is updated. Then getTreeModel() got called twice. The > first time it returned the updated one, then the second time it returned the > old one. > > My treeBacked is defined in the session scope as follow. So there should > not be two instances of treeBacker for the same session. > > <managed-bean> > <managed-bean-name>treeBacker</managed-bean-name> > > <managed-bean-class>gov.nih.nci.ncicb.cadsr.umlmodelbrowser.tree.TreeBacker</managed-bean-class> > <managed-bean-scope>session</managed-bean-scope> > </managed-bean> > > Any suggestions on how to get this to work or other ways to refresh the tree > would be grealy appreciated. > > Many thanks, > > Jane

