Menu

#22 UnTreeViewLoader.treeNodesChanged moves nodes to end of tree

open
nobody
None
5
2009-01-08
2009-01-08
No

The method UnTreeViewLoader.treeNodesChanged(TreeModelEvent arg0) includes the following method calls:
...
l_rrNode.removeNode(l_oldNode);
l_rrNode.addNode(l_newNode.getName(), l_newNode);
...

The call to addNode(String xName, KeTreeNode xNode) should be replaced by a call to addNode(String xName, KeTreeNode xNode, int xIdx). Otherwise, the changed node is always moved to the end of the tree, which messes the tree up.

Original discussion (in German):
"Ich habe einen TreeView, indem sich einzelne Knoten ändern. Die Änderung erfolgt, indem die Datenklasse im Modell geändert wird und anschließend nodeChanged oder nodesChanged im DefaultTreeModel aufgerufen wird. Dies führt dazu, dass im UnTreeViewLoader die Methode treeNodesChanged aufgerufen wird. Diese Methode rendert den geänderten Knoten neu. Abschließend wird der alte Knoten entfernt und der neue in den Baum eingehängt:

l_rrNode.removeNode(l_oldNode);
l_rrNode.addNode(l_newNode.getName(), l_newNode);

Dies führt allerdings dazu, dass der neue Knoten immer am Ende der Liste der Kindknoten eingefügt wird und somit die Ordnung im Baum durcheinander gerät. Ich hätte erwartet, dass der alte Knoten durch den neuen ersetzt wird, so dass er dann an der gleichen Stelle im Baum steht. Sieht mir von daher auch wieder nach einem Problem im Widget-Server aus."

Discussion


Log in to post a comment.