有这样一个需求,当我们Tree模型发生变化时,此时,我们肯定要重新setInput,重新设置模型。
但是有一个问题就是我上一次展开元素的状态,肯定要保留下来,要不会让客户很不爽的
所以答案来了,很简单的几行代码。
Object[] expanded = fExtensionTree.getExpandedElements();
fExtensionTree.getControl().setRedraw(false);
fExtensionTree.setInput(model.getPluginBase());
fExtensionTree.setExpandedElements(expanded);
fExtensionTree.getControl().setRedraw(true);
不在乎问题有多深,在乎是否有好的解决办法。呵呵