gpt4 book ai didi

java - JFace TreeViewer,当某些空文件夹被填充时如何通知树

转载 作者:行者123 更新时间:2023-12-01 14:38:31 25 4
gpt4 key购买 nike

我使用树结构顾问构建了一个 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()可能有效,但出于性能考虑,当我们知道只有一个节点发生更改时,刷新整个树并不好。

最佳答案

在这种情况下,您应该真正依赖您的数据模型来通知更改的数据。这意味着当某些用户操作修改您的数据模型时,它应该负责通知相关组件有关更改的信息。然后,您可以向模型添加“数据更改监听器”,并通过 TreeViewer#refresh(Object) 仅刷新更改的对象。

关于java - JFace TreeViewer,当某些空文件夹被填充时如何通知树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16237465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com