2012-10-09 30 views
0

您好我正在开发Eclipse的插件,其中部分涉及创建/维护Java项目的类路径容器。在某些情况下,容器名称(getDescription())可能会更改。现在只需选择容器或项目并按F5刷新没有问题并显示新名称,但我似乎无法以编程方式执行此操作。我试过了:刷新Eclipse中的类路径容器名称

IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); 
... 
for (IProject p: root.getProjects()) { 
    ... some checks done here... 
    p.refreshLocal(IResource.DEPTH_INFINITE, null); 
} 

但这似乎没有刷新名称。我也尝试了一些愚蠢的东西,比如重复部分RefreshAction(当按F5我假设时使用的),但那也不起作用。任何帮助,将不胜感激。

回答

2

我发现JDT期望classpath容器以不可变的方式运行。也就是说,IClasspathContainer方法返回的任何值都不会从一次调用变为另一次。有趣的事情可以发生在JDT上,如果他们这样做。这不是一个非常好的API。

因此,将它视为不可变的对象,并且当您需要更改某些内容(无论它是条目还是描述)时,请通过JavaCore.setClasspathContainer()调用提供新的IClasspathContainer实例。这将确保一切正确更新。

+0

我很害怕这种情况。 – SamYonnou