我有一个jFace treeViewer。我想扩展一个特定的节点。我知道有一个函数ExpandToLevel(),但我不知道如何使用它,这个问题已经困扰了我好几天。
另外,我是一名中国学生,所以我的英语很差,但我希望问题很清楚。谢谢!
下面的代码,我不知道问题出在哪里,树根本没有扩展。
for (Object item : ((ITreeContentProvider)fViewer.getContentProvider()).getElements(fViewer.getInput())) {
for (Object contents : ((ITreeContentProvider) fViewer.getContentProvider()).getChildren(item)) {
if (((ITreeContentProvider) fViewer.getContentProvider()).getChildren(contents) != null)
System.out.println("the content is :" +contents.toString());
fViewer.expandToLevel(contents, AbstractTreeViewer.ALL_LEVELS);
}
以下代码是关于节点模型的:
package model;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class LocalFileDir {
private String name;
private List children;
private String path;
public LocalFileDir(String path, String name){
this.name = name;
this.path = path;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public String getPath(){
return path;
}
public void setChildren(List children) {
this.children = children;
}
public List getChildren() {
File file = new File(path);
System.out.println("获取当前文件夹********************"+path);
File[] fs = file.listFiles();
children = new ArrayList();
if(fs != null){
for(File f : fs){
if(f.exists()){
children.add(new LocalFileDir(path+"/"+f.getName(), f.getName()));
}
}
}
return children;
}
}
答案 0 :(得分:1)
TreeItem[] treeItems = viewer.getTree().getItems();
for (TreeItem treeItem : treeItems) {
viewer.expandToLevel(treeItem.getData(), TreeViewer.ALL_LEVELS);
}
希望它能解决您的问题,您可以检查 foreach 循环中的条件