【问题标题】:CDT Folder issue when developing an eclipse plugin开发 Eclipse 插件时的 CDT 文件夹问题
【发布时间】:2016-11-03 14:05:47
【问题描述】:

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

【问题讨论】:

    标签: java eclipse plugins eclipse-cdt


    【解决方案1】:

    用户界面对象通常“适应”资源对象。

    所以试试

    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(及更高版本)中运行时才使用此选项。

    【讨论】:

    • 在 Eclipse Neon 中有一个很棒的新实用程序类,称为“适配器”。它实现了适配对象的规范方式,甚至可能已经实现了给定接口:help.eclipse.org/neon/topic/org.eclipse.platform.doc.isv/…
    • @greg-449 谢谢,它解决了我的问题。不知道一切都可以适应:)
    • @JonahGraham:也谢谢你,很有趣
    猜你喜欢
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多