java - JTree: Missing link between TreeNode and TreePath -
i have problem described here.
i have invertexpand method in mytree class works this:
public void invertexpand(defaultmutabletreenode node) { treepath path = new treepath(node.getpath()); // no better way treepath treenode :( if (!isexpanded(path)) { expandpath(path); } else { collapsepath(path); } } but problem isexpanded() method uses hashmap store expanded paths. seems isexpanded() never returns true newly created treepath. (but expanded really)
does way fix issue?
expand/collapse works on non-leaf nodes, sure node in question not leaf:
public void invertexpand(defaultmutabletreenode node) { if (node.isleaf()) node = (defaultmutabletreenode) node.getparent(); treepath path = new treepath(node.getpath()); // no better way treepath treenode :( if (isexpanded(path)) { collapsepath(path); } else { expandpath(path); } } edit (as per op's comment)
the real reason misbehaviour incorrectly implemented hascode in custom node confused map (where expanded paths stored).
Comments
Post a Comment