SWT/Jface TreeViewer 获取展开节点元素集合

时间:2022-09-19 20:26:12

有这样一个需求,当我们Tree模型发生变化时,此时,我们肯定要重新setInput,重新设置模型。

但是有一个问题就是我上一次展开元素的状态,肯定要保留下来,要不会让客户很不爽的

所以答案来了,很简单的几行代码。

  Object[] expanded = fExtensionTree.getExpandedElements();
  fExtensionTree.getControl().setRedraw(false);
  fExtensionTree.setInput(model.getPluginBase());
  fExtensionTree.setExpandedElements(expanded);
  fExtensionTree.getControl().setRedraw(true);

 

不在乎问题有多深,在乎是否有好的解决办法。呵呵