TreeViewer
我用这样的树结构顾问构建了一个:
public class ExplorerTreeStructureAdvisor extends TreeStructureAdvisor {
@Override
public Object getParent(Object element) {
return ((Node)element).getParent();
}
@Override
public Boolean hasChildren(Object element) {
if(element instanceof Folder){
Folder folder = (Folder)element;
return !folder.getChildren().isEmpty();
}
return false;
}
}
有了这样的TreeStructureAdvisor
,该树中的空文件夹将没有展开按钮。当某些用户操作发生时,一些子节点将被添加到该空文件夹中,通知树树结构已更改的最佳方法是什么?
我认为,TreeViewer#refresh()
可能可行,但出于性能考虑,当我们知道只有一个节点被更改时,刷新整棵树并不好。