Ah, I see the problem. You need to create a new renderer instance - you can't 
re-use the one from the TreeView (otherwise, you'll get the behavior you 
describe, since that one is actually used to paint the tree nodes). 

Instead of:

TreeViewNodeRenderer renderer = (TreeViewNodeRenderer) getNodeRenderer();

try:

TreeViewNodeRenderer renderer = new TreeViewNodeRenderer();

On Jun 8, 2011, at 10:38 AM, Edvin Syse wrote:

> Den 08.06.2011 16:29, skrev Greg Brown:
>>>            TreeViewNodeRenderer renderer = (TreeViewNodeRenderer) 
>>> getNodeRenderer();
>>>            TreeNode node = (TreeNode) getSelectedNode();
>>>            Sequence.Tree.Path path = getSelectedPath();
>>>            renderer.render(node, path, getRowIndex(path), 
>>> PageTreeView.this, isBranchExpanded(path), isNodeSelected(path), 
>>> getNodeCheckState(path), true, false);
>>>            return renderer;
>>> 
>>> This paints the wrong node (two nodes higher). I tried creating a new 
>>> TreeViewNodeRenderer, but then it paints nothing. Please advice :)
>> 
>> Are you dragging the selected node or another node?
> 
> Yes, the node is selected when I left-click to start to drag. I've also 
> double checked that I explicitly select the node before starting to drag. It 
> seems the node that is painted with the above code is always the last node in 
> the tree.
> 
> -- Edvin

Reply via email to