我已经为我的eclipse插件集成了一个propertytester。 每当我从上下文菜单中选择一个项目时,属性测试器将被激活并检查所选元素的数据类型,例如, IProject 或 IFolder 识别工作完美,直到我安装了CDT插件来进行日食。 现在文件夹似乎表示为类型 org.eclipse.cdt.internal.core.model.CContainer ,它似乎是该文件夹的CDT表示。 有没有办法避免这种转换机制或以编程方式将CDT foldertype org.eclipse.cdt.internal.core.model.CContainer 转换为已知的 IFolder ?
答案 0 :(得分:4)
用户界面对象通常具有适应性'资源对象。
所以试试
IFolder folder = (IFolder)Platform.getAdapterManager().getAdapter(object, IFolder.class);
其中object
是所选对象。
可能未直接向IFolder
提供适配器,因此请尝试适应IResource
。
在较新版本的Eclipse中,适配器管理器是通用的,因此您不需要演员。
在Eclipse 4.6(Neon)中,您可以使用:
IFolder folder = Adapters.adapt(object, IFolder.class);
还将检查该类是否实现IAdaptable
或是IFolder
的实例。只有在您只希望代码在Eclipse 4.6(及更高版本)中运行时才使用它。