0

我有一个扩展 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()]);
}

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

expandtolevel 和 setExpandedState 不起作用...

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

问候, 阿拉文德

4

1 回答 1

1

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

于 2012-07-08T16:23:18.230 回答