Java SWT 树全部展开/全部折叠

Java SWT Tree Expand All / Collapse All

如何为我自己的 SWT 树创建“全部展开”和“全部折叠”功能,类似于 Eclipse 的包资源管理器中的“全部折叠”按钮?

如果您只是使用 SWT Tree,您必须遍历树中的所有项目并展开/折叠每一项。例如:

boolean expanded = true to expand, false to collapse

Tree tree = ... your tree

tree.setRedraw(false);  // Stop redraw until operation complete

TreeItem [] items = tree.getItems();

for (TreeItem item : items) {
   item.setExpanded(expanded);
}

tree.setRedraw(true);

如果您使用的是 JFace TreeViewer,请调用查看器 collapseAllexpandAll 方法。