CDT 开发 eclipse 插件时的文件夹问题

CDT Folder issue when developing an eclipse plugin

我已经为我的 eclipse 插件集成了一个 属性 测试器。 每次我从上下文菜单中选择一个项目时,属性 测试器将被激活并检查所选元素的数据类型,例如IProjectIFolder.
识别效果非常好,直到我安装了 CDT 插件到 eclipse。 现在文件夹似乎表示为 org.eclipse.cdt.internal.core.model.CContainer 类型,这似乎是文件夹的 CDT 表示形式。 有没有办法避免这种转换机制或以编程方式将 CDT 文件夹类型 org.eclipse.cdt.internal.core.model.CContainer 转换为已知的 IFolder

用户界面对象通常是 'adaptable' 资源对象。

所以试试

IFolder folder = (IFolder)Platform.getAdapterManager().getAdapter(object, IFolder.class);

其中 object 是所选对象。

可能没有提供直接到 IFolder 的适配器,所以也尝试适应 IResource

在较新版本的 Eclipse 中,适配器管理器是通用的,因此您不需要转换。

在 Eclipse 4.6 (Neon) 中,您可以使用:

IFolder folder = Adapters.adapt(object, IFolder.class);

这还将检查 class 是否实现了 IAdaptable 或者是 IFolder 的实例。仅当您只希望代码在 Eclipse 4.6(及更高版本)中 运行 时才使用此选项。