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