From 9e6cac818401e447b78fa2f1ca91f9f51d217c3d Mon Sep 17 00:00:00 2001 From: pompert <sdos@astron.nl> Date: Mon, 22 May 2006 15:15:54 +0000 Subject: [PATCH] BugID: 725 Additions: -None Mods: -Altered the defineChildsForNode method to set the childsDefined boolean in the parmDBnode to true to prevent infinite loops -modified the constructor for child treenodes to include the full name in the TreeNode.name variable. --- .../lofar/sas/otb/util/treemanagers/ParmDBTreeManager.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/treemanagers/ParmDBTreeManager.java b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/treemanagers/ParmDBTreeManager.java index 446b17a3896..55746bafd7f 100644 --- a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/treemanagers/ParmDBTreeManager.java +++ b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/treemanagers/ParmDBTreeManager.java @@ -64,6 +64,11 @@ public class ParmDBTreeManager extends GenericTreeManager implements ITreeManage logger.trace("Entry - TreeManager jParmDBnode-defineChildNodes("+toString()+")"); try { + // You must set the flag before defining children if you + // use "add" for the new children. Otherwise you get an infinite + // recursive loop, since add results in a call to getChildCount. + // However, you could use "insert" in such a case. + aNode.areChildrenDefined = true; Vector childs; if(((jParmDBnode)aNode.getUserObject()).name.equalsIgnoreCase("ParmDB")){ logger.trace("ParmDBtreeNode calling getNames("+((jParmDBnode)aNode.getUserObject()).nodeID().substring(6)+"*)"); @@ -104,7 +109,7 @@ public class ParmDBTreeManager extends GenericTreeManager implements ITreeManage item.name = childName; logger.trace("Node name selected : "+item.name); ((jParmDBnode)aNode.getUserObject()).leaf=false; - TreeNode newNode = new TreeNode(this.instance,item,item.name); + TreeNode newNode = new TreeNode(this.instance,item,item.nodeID()); aNode.add(newNode); TreeModelEvent evt = new TreeModelEvent(newNode,newNode.getPath()); -- GitLab