查看扩展CommonNavigator

时间:2012-07-08 12:41:08

标签: eclipse eclipse-plugin jface

我有一个扩展CommonNavigator的视图。

我正在通过CustomProjectCreation向导创建一个自定义项目。

只有下面给出的刷新才有效,但是每次创建一个应该避免的新项目时它会刷新所有项目,

CommonNavigator resNav;
try {
resNav = (CommonNavigator)activePage.findView("view id");
resNav.getCommonViewer().refresh();
//resNav.getCommonViewer().refresh(newProject); //doesn't work
} catch (PartInitException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

ContentProvider looks as below
if(parentElement instanceof IWorkspaceRoot){
List customProjects = getCustomProjects();
return customProjects.toArray(new CustomProject[customProjects.size()]);
}

在Debug上,getCommonViewer()。refresh()调用内容提供程序中的getChildren()方法。 getCommonViewer()。refresh(newProject)不调用ContentProvider

expandtolevel和setExpandedState无效...

如何实现刷新特别是新创建的项目? 如何扩展创建的项目?

此致 阿拉汶

1 个答案:

答案 0 :(得分:1)

您确定问题出在常见的导航器中吗?如果您通过使用非Eclipse资源访问方法(即普通的Java文件IO而不是IResource,IFile和相关代码)在新项目内部创建了工件,那么模型就不知道新内容。如果是这种情况,您首先需要yourProjectResource.refreshLocal()