Den 07.06.2011 09:17, skrev Edvin Syse:
Updating a node that has a parent, even changing it from a TreeNode to a BranchNode is trivial via det node.getParent().update() method. But when a node is at the root of the hierarchy, I don't have a parent to call update on. I guess I need to invoke some listener on the TreeView itselv, but how? :)
I did get it working:

            // Get index of current node
            int idx = getTreeData().indexOf(node);

            // Remove old node, add new node
            getTreeData().remove(idx, 1);
            getTreeData().insert(newNode, idx);

// Traverse all NodeListeners and tell them I updated index pos at root (empty Path)
            Sequence.Tree.Path path = new Sequence.Tree.Path();
            for (TreeViewNodeListener l : getTreeViewNodeListeners())
                l.nodeUpdated(this, path, idx);

.. but maybe there is a simpler/cleaner way? Maybe TreeView itself should have a rootNodeUpdated method, in line with the functionality on a TreeBranch? :)

-- Edvin

Reply via email to