尝试刷新树查看器时,将处置树

时间:2012-07-03 07:22:29

标签: treeview eclipse-rcp rcp treeviewer

我在视图中有一个树查看器。我有一个实现了树内容提供者的监听器。当某些数据发生更改时,会通知树。但是当我试图刷新我的树形图时,会出现一条错误消息并显示树已被丢弃。什么是我的清新行动的问题以及为什么树被处置。

这是我的代码片段。

getChildren()
{
     resource.addListener(this);
}

public void dataChangeListener(changeddata)
{
     tree.refresh(changedata,true); // Tree shows as disposed.
}

此致 吉里什

1 个答案:

答案 0 :(得分:3)

UI的所有更新都需要在UI线程中完成。您可以使用以下代码执行此操作。您还应该在调用刷新之前检查树是否已被处理。

    Display.getDefault().asyncExec(new Runnable() {
        @Override
        public void run() {
            if (!tree.getTree().isDisposed()) {
                tree.refresh(changedData, true);
            }
        }
    });