可以使用资源更改侦听器向Eclipse插件通知资源更改。
删除项目时,会通知资源更改侦听器并将IResourceChangeEvent传递给它。使用下面的代码,可以获得事件的类型。
@Override
public void resourceChanged(IResourceChangeEvent event) {
switch (event.getType()) {
case IResourceChangeEvent.PRE_DELETE:
// do something
break;
}
}
但是当在eclipse中删除项目时,用户可以选择从文件系统或仅从工作区中删除项目。
有没有办法在资源更改侦听器中区分这两种情况?
编辑: 我要做的是以下内容:我有两个项目A和B,其中B依赖于A.当A被删除时,我也希望B被删除。如果从文件系统中删除A,我希望B也从文件系统中删除。
答案 0 :(得分:0)
由于某种原因,这是不可能的:Eclipse插件只能使用和了解工作区资源。从架构的角度来看,工作区外没有任何东西。如果Eclipse插件正在对文件执行某些操作(除了导出/导入任务),那么这通常是错误的。
因此,对于您的插件,如果删除了IResources,那么基础文件是否被删除无关紧要。