TreeViewer展开所有块UI

时间:2016-01-29 09:46:02

标签: treeview eclipse-rcp

我们使用RCP 3.4。使用TreeViewer,有一个方便的函数叫做" expandAll()"它扩展了整棵树。但是当树中有许多项目时,UI会阻塞一段时间。我试图将它放入工作区作业,但后来我得到了错误Invalid thread access。然后我尝试使用Displac.getDefaukt().asyncExec(...)运行该方法,然后UI也阻止。

有没有办法将expand-All方法放入可以放入后台并取消的作业中,就像正常的工作区Job?

1 个答案:

答案 0 :(得分:1)

对于普通树,您可以做的就是在树扩展时显示忙碌指示符,可能使用BusyIndicator

您还可以查看使用可以在后台获取树节点的DeferredTreeContentManager。这需要您的树节点实现或适应IDeferredWorkbenchAdapterfetchDeferredChildren具有用于后台工作的{{1}}方法。