Jos*_*osé 2 eclipse eclipse-plugin
我有一个插件,想要检测何时将项目添加到工作区,从我的插件代码中设置一些项目设置,Any Ideas.
特别是我想在一些衍生文件的资源中调用setHidden,因为这个设置似乎不是项目的一部分,我的意思是,如果我在新工作区中导入项目,隐藏资源似乎不会持久.
具有讽刺意味的是,我昨天刚刚写了这样的话.它比你想要的复杂一点.以下是您可以使用的代码段:
public class ProjectListener implements IResourceChangeListener {
public void resourceChanged(IResourceChangeEvent event) {
if (event.getType() == IResourceChangeEvent.POST_CHANGE) {
List<IProject> projects = getProjects(event.getDelta());
// do something with new projects
}
}
private List<IProject> getProjects(IResourceDelta delta) {
final List<IProject> projects = new ArrayList<IProject>();
try {
delta.accept(new IResourceDeltaVisitor() {
public boolean visit(IResourceDelta delta) throws CoreException {
if (delta.getKind() == IResourceDelta.ADDED &&
delta.getResource().getType() == IResource.PROJECT) {
IProject project = (IProject) delta.getResource();
if (project.isAccessible()) {
projects.add(project);
}
}
// only continue for the workspace root
return delta.getResource().getType() == IResource.ROOT;
}
});
} catch (CoreException e) {
// handle error
}
return projects;
}
Run Code Online (Sandbox Code Playgroud)
然后,您需要将此ProjectListener添加到Workspace,最好是在start插件激活器的方法中:
ResourcesPlugin.getWorkspace().addResourceChangeListener(ProjectListener.LISTENER, IResourceChangeEvent.POST_CHANGE);
Run Code Online (Sandbox Code Playgroud)
然后你想在stop方法中删除它.我昨天刚刚写了这段代码.我希望它有所帮助.
| 归档时间: |
|
| 查看次数: |
912 次 |
| 最近记录: |