Eclipse - “虚拟”资源

时间:2012-09-19 10:46:34

标签: eclipse eclipse-plugin eclipse-rcp cnf

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

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

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

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

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

提前致谢!

1 个答案:

答案 0 :(得分:2)

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

  1. 拥有自己的标记模型,完全符合您的数据模型,
  2. 为您的树实现装饰器(通过扩展点)
  3. 实现类似于Problems-view的类似内容,以显示标记。
  4. 虽然实现类似的东西听起来有点奇怪但它会为你节省很多麻烦,因为你的场景不受工作空间模型和api边界的限制。