0

可以使用资源更改侦听器通知 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 也从文件系统中删除。

4

1 回答 1

0

这是不可能的,原因是:Eclipse 插件应该只使用和知道工作区资源。从架构的角度来看,工作空间之外没有任何东西。如果 Eclipse 插件正在处理文件(除了导出/导入任务),那么这通常是错误的。

因此,对于您的插件,如果 IResources 被删除,则是否删除底层文件都无关紧要。

于 2013-04-11T05:34:06.350 回答