CDT 开发 eclipse 插件时的文件夹问题
CDT Folder issue when developing an eclipse plugin
我已经为我的 eclipse 插件集成了一个 属性 测试器。
每次我从上下文菜单中选择一个项目时,属性 测试器将被激活并检查所选元素的数据类型,例如IProject 或 IFolder.
识别效果非常好,直到我安装了 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(及更高版本)中 运行 时才使用此选项。
我已经为我的 eclipse 插件集成了一个 属性 测试器。
每次我从上下文菜单中选择一个项目时,属性 测试器将被激活并检查所选元素的数据类型,例如IProject 或 IFolder.
识别效果非常好,直到我安装了 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(及更高版本)中 运行 时才使用此选项。