Java JFace TreeViewer,在弹出某个空文件夹时如何通知树
我使用树结构顾问构建了一个Java JFace TreeViewer,在弹出某个空文件夹时如何通知树,java,eclipse-plugin,swt,eclipse-rcp,jface,Java,Eclipse Plugin,Swt,Eclipse Rcp,Jface,我使用树结构顾问构建了一个TreeViewer,如下所示: public class ExplorerTreeStructureAdvisor extends TreeStructureAdvisor { @Override public Object getParent(Object element) { return ((Node)element).getParent(); } @Override public Boolean ha
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;
}
}
使用这样的树structureAdvisor
,该树中的空文件夹将没有展开按钮。当某些用户操作发生时,一些子节点将被添加到该空文件夹中,通知树结构已更改的最佳方式是什么
我认为,
TreeViewer#refresh()
可能会起作用,但出于性能考虑,当我们知道只有一个节点发生了更改时,刷新整个树是不好的。在这种情况下,您应该真正依靠您的数据模型来通知更改的数据。这意味着,当某些用户操作修改您的数据模型时,它应该负责将更改通知相关组件。然后,您可以向模型中添加“数据更改侦听器”,并通过TreeViewer#refresh(object)
Thank@Waqas仅刷新更改的对象。我希望数据绑定能够处理所有的事情。我将等待几天,以找到一种方法来自动更新TreeViewer,正如“数据绑定”所暗示的那样。如果我找不到答案,我会认为你的答案是正确的D