You’re right. I wasn’t paying much attention to the actual removal logic there. I was mostly trying to demonstrate the use of cascade and/or eachChild. I used something like that in a project were there were all leaf nodes were always part of a group node.
I found the code we are actually using for a removing nodes from a layer tree that can contain different hierarchies of nodes. The following snippet is used in the function that actually does the node removal. I think we adapted this from the pre-GeoExt Mapfish client code, but it is being used in a GeoExt project now. var parent = node.parentNode; node.remove(); //delete empty parents while (parent) { if (parent.hasChildNodes()) { break; } var cur = parent; parent = parent.parentNode; cur.remove(); } This function recursively walks up the tree from the node which was removed deleting any empty parent group nodes and stopping once it has found a group node with child nodes. Matt Priour From: Phil Scadden Sent: Wednesday, July 13, 2011 9:56 PM To: Matt Priour Cc: users@geoext.org Subject: Re: [Users] Layertreebuilder has issues when layer removed. You should change your function to this: tree.getRootNode().cascade(function(node){ if (!node.childNodes || node.childNodes.length==0) { node.remove(); } } That would surely remove the leaf nodes as well as empty group nodes? The trick is recognize that the node is a group node rather than a layer leaf node. I never thought of a delay. on remove. Will experiment. -- Phil Scadden, Senior Scientist GNS Science Ltd 764 Cumberland St, Private Bag 1930, Dunedin, New Zealand Ph +64 3 4799663, fax +64 3 477 5232 Notice: This email and any attachments are confidential. If received in error please destroy and immediately notify us. Do not copy or disclose the contents.
_______________________________________________ Users mailing list Users@geoext.org http://www.geoext.org/cgi-bin/mailman/listinfo/users