This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Created attachment 108587 [details] scrennshoot. Outlineview left, BeanTreeView right. (look at the nodes at the bottom) If the display name changes (e.g. by calling setDisplayName() which calls fireDisplayNameChange()) the displayed name doesn't changes only for some nodes. The BeanTreeView works fine. Example code: package example.outline; import java.awt.BorderLayout; import java.util.Random; import java.util.concurrent.TimeUnit; import javax.swing.JPanel; import javax.swing.JSplitPane; import org.openide.explorer.ExplorerManager; import org.openide.explorer.view.BeanTreeView; import org.openide.explorer.view.OutlineView; import org.openide.nodes.AbstractNode; import org.openide.nodes.Children; import org.openide.nodes.Children.Array; import org.openide.nodes.Node; import org.openide.util.RequestProcessor; /** */ public class OutlineTestPanel extends JPanel implements ExplorerManager.Provider { private final ExplorerManager em = new ExplorerManager(); private final Random random = new Random(62354564); public OutlineTestPanel() { this.setLayout(new BorderLayout()); JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, new OutlineView(), new BeanTreeView()); splitPane.setDividerLocation(300); this.add(splitPane); //Simple self updating node stucture: Node root = new TestNode(buildChildren(4), 1000, 1); em.setRootContext(root); } //Helper to build some children. private Children buildChildren(int level) { if (level <= 0) { return Children.LEAF; } Array children = new Children.Array(); int count = random.nextInt(10) + 1; for (int i = 0; i < count; i++) { children.add(new Node[] { new TestNode(buildChildren(level - random.nextInt(4) - 1), (random.nextInt(10) + 1) * 100, i + 1) }); } return children; } @Override public ExplorerManager getExplorerManager() { return em; } private final static RequestProcessor RP = new RequestProcessor(TestNode.class); private class TestNode extends AbstractNode implements Runnable { private final int interval; private final int no; private int count = 0; public TestNode(Children children, int interval, int no) { super(children); this.interval = interval; this.no = no; updateDisplayName(); RP.scheduleAtFixedRate(this, interval, interval, TimeUnit.MILLISECONDS); } @Override public void run() { count++; updateDisplayName(); } private void updateDisplayName() { setDisplayName("Node " + no + " (" + count + "*" + interval + "ms)"); } } }
Created attachment 108589 [details] Complete netbeans platform project
Thanks for the project, I've reproduced the problem.
It was not easy to find out, but was easy to fix. :-) Fixed by changeset: 194909:59dd1449aef2 http://hg.netbeans.org/main/rev/59dd1449aef2 Merged into release701 branch as changeset: 199638:81ddbc02fd6d
Integrated into 'main-golden', will be available in build *201106010401* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main/rev/59dd1449aef2 User: mentlicher@netbeans.org Log: #198991 The row calculation is corrected.