TreeViewer 展开所有块 UI
TreeViewer expand all blocks UI
我们使用 RCP 3.4。 TreeViewer 有一个名为 "expandAll()" 的方便函数,它可以展开整个树。但是当你的树中有很多项目时,UI 会阻塞一段时间。我试图将其放入工作区作业中,但随后出现错误 Invalid thread access
。然后我尝试 运行 使用 Displac.getDefaukt().asyncExec(...)
的方法,但随后 UI 块也是如此。
有没有什么办法可以将 expand-All 方法放入一个可以放入后台和取消的作业中,就像一个普通的工作区作业一样?
对于普通的树,您所能做的就是在树展开时显示一个繁忙指示符,也许使用 BusyIndicator
。
您还可以查看使用 DeferredTreeContentManager
,它可以在后台获取树节点。这需要您的树节点实现或适应 IDeferredWorkbenchAdapter
,它有一个用于执行后台工作的 fetchDeferredChildren
方法。
我们使用 RCP 3.4。 TreeViewer 有一个名为 "expandAll()" 的方便函数,它可以展开整个树。但是当你的树中有很多项目时,UI 会阻塞一段时间。我试图将其放入工作区作业中,但随后出现错误 Invalid thread access
。然后我尝试 运行 使用 Displac.getDefaukt().asyncExec(...)
的方法,但随后 UI 块也是如此。
有没有什么办法可以将 expand-All 方法放入一个可以放入后台和取消的作业中,就像一个普通的工作区作业一样?
对于普通的树,您所能做的就是在树展开时显示一个繁忙指示符,也许使用 BusyIndicator
。
您还可以查看使用 DeferredTreeContentManager
,它可以在后台获取树节点。这需要您的树节点实现或适应 IDeferredWorkbenchAdapter
,它有一个用于执行后台工作的 fetchDeferredChildren
方法。