gpt4 book ai didi

Eclipse - "Virtual"资源

转载 作者:行者123 更新时间:2023-12-04 21:20:41 27 4
gpt4 key购买 nike

我正在编写一个使用虚拟树状文件结构的插件。基本上它就像一个包含文件的标准文件系统,区别在于这些文件实际上并不存在于文件系统中的特定位置,而只是 java 对象。

这些当前由使用 SettingProvider 的导航器(使用通用导航器框架的自定义实现)支持,并且与这些对象的交互就像与标准文件的交互一样实现。

但是,现在有必要将标记粘贴到这些对象上。据我了解 Eclipse 框架,标记只能附加到 *IResource*s,所以为了实现这个目标,我应该创建 IResource 的实例而不是使用 *SettingProvider*s。

但是,标准实现只允许从文件系统创建资源。由于存在虚拟文件夹之类的东西,因此必须有可能创建虚拟资源,即在文件系统中没有实际位置的资源。
但是我该怎么做呢?我的研究似乎一无所获……

或者,是否有可能以不同的方式实现所需的功能(在 CNF 导航器中将标记粘贴到对象上)?

提前致谢!

最佳答案

是的,标记只能附加到工作区中的资源。为了实现自定义文件系统,Eclipse 提供了 EFS 机制,以提供“类文件”结构,有关更多信息,请参阅 http://wiki.eclipse.org/EFS - 在此页面上,您还可以找到示例实现的链接,这些链接应该让您了解如何实现您自己的文件系统贡献者。
但是:恕我直言,在您的场景中使用 Eclipses 标记系统是错误的方法。所有东西都与工作区模型非常紧密地结合在一起,而工作区模型与自定义数据模型不能很好地配合使用。根据我的经验,最好的是

  • 拥有自己的完全适合您的数据模型的标记模型,
  • 为您的树实现装饰器(通过扩展点)
  • 实现类似问题 View 的东西来可视化标记。

  • 尽管实现已经存在的类似内容听起来有点奇怪,但它会为您省去很多麻烦,因为您的场景不受工作区模型和 api 的限制。

    关于Eclipse - "Virtual"资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12493179/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com