如何在TreeViewer(org.eclipse.jface)中扩展特定节点

如何在TreeViewer(org.eclipse.jface)中扩展特定节点,eclipse,treeview,expand,Eclipse,Treeview,Expand,我有一个jFace treeViewer。我想在其中扩展一个特定的节点。我知道有一个函数ExpandToLevel(),但我不知道如何使用它,这个问题困扰了我好几天 另外,我是一名中国学生,所以我的英语很差,但我希望问题清楚。谢谢 下面的代码,我不知道哪里有问题,树根本没有展开 (对象项)((ITreeContentProvider)fViewer.getContentProvider()).getElements(fViewer.getInput())的{ 对于(对象内容:((ITreeCon

我有一个jFace treeViewer。我想在其中扩展一个特定的节点。我知道有一个函数ExpandToLevel(),但我不知道如何使用它,这个问题困扰了我好几天

另外,我是一名中国学生,所以我的英语很差,但我希望问题清楚。谢谢

下面的代码,我不知道哪里有问题,树根本没有展开

(对象项)((ITreeContentProvider)fViewer.getContentProvider()).getElements(fViewer.getInput())的
{
对于(对象内容:((ITreeContentProvider)fViewer.getContentProvider()).getChildren(项)){
if(((ITreeContentProvider)fViewer.getContentProvider()).getChildren(contents)!=null)
System.out.println(“内容是:“+contents.toString());
fViewer.expandToLevel(目录、抽象树视图、所有级别);
}   
下面的代码是关于节点模型的:

包模型;
导入java.io.File;
导入java.util.ArrayList;
导入java.util.List;
公共类LocalFileDir{
私有字符串名称;
私人名单儿童;
私有字符串路径;
公共LocalFileDir(字符串路径、字符串名称){
this.name=名称;
this.path=path;
}
公共void集合名(字符串名){
this.name=名称;
}
公共字符串getName(){
返回名称;
}
公共字符串getPath(){
返回路径;
}
公共子项(列出子项){
这个。孩子=孩子;
}
公共列表getChildren(){
文件=新文件(路径);
System.out.println(“获取当前文件夹********************"+路径);
File[]fs=File.listFiles();
children=newarraylist();
如果(fs!=null){
for(文件f:fs){
如果(f.exists()){
add(新的LocalFileDir(path+“/”+f.getName(),f.getName());
}
}
}
返回儿童;
}
}

希望它能解决您的问题您可以检查foreach循环中的条件

@NliuLin:展开时是否有可用的
I选择
?或者`
ExecutionEvent
?您所说的“I选择”和“ExecutionEvent”是什么意思?首先,我得到树,然后搜索要展开的节点,接下来,我使用函数ExpandToLevel()…@flafoux你能说得更详细些吗?@flafoux我想在打开外壳时将树展开。谢谢你,这节省了我很多时间。。。
TreeItem[] treeItems = viewer.getTree().getItems();
    for (TreeItem treeItem : treeItems) {
        viewer.expandToLevel(treeItem.getData(), TreeViewer.ALL_LEVELS);
    }