Eclipse plugin 如何使用编辑器功能以编程方式更新链接的选定资源?

Eclipse plugin 如何使用编辑器功能以编程方式更新链接的选定资源?,eclipse-plugin,eclipse-rcp,Eclipse Plugin,Eclipse Rcp,我的Eclipse插件提供了一个编辑器,其中包含一个文件列表(作为依赖项搜索的结果)。当用户在列表中选择一个文件时,该文件/资源应在包/资源管理器中突出显示 如果有类似于:updateSelectedResource(IResource)的调用,则可以使用explorer视图的“带编辑器的链接”功能轻松完成此操作,我可以从编辑器中调用该调用以明确设置活动文件。实际调用的是什么?您的编辑器必须成为一名编辑。在中,您将获得一个完整的示例,其中注册选择提供程序的重要一行是getSite()。之后,列表

我的Eclipse插件提供了一个编辑器,其中包含一个文件列表(作为依赖项搜索的结果)。当用户在列表中选择一个文件时,该文件/资源应在包/资源管理器中突出显示

如果有类似于:
updateSelectedResource(IResource)
的调用,则可以使用explorer视图的“带编辑器的链接”功能轻松完成此操作,我可以从编辑器中调用该调用以明确设置活动文件。实际调用的是什么?

您的编辑器必须成为一名编辑。在中,您将获得一个完整的示例,其中注册选择提供程序的重要一行是
getSite()。之后,列表中选定的文件将自动告知所有选择侦听器,包括包资源管理器

如果您想了解选择服务(负责使这些视图对其他视图中的选择做出反应)的总体情况,可以使用一个详细的描述


如果您发现自己想要与更多现有视图进行交互,您可能还需要查看IAdaptable,如前所述,但这对于package explorer链接不是必需的。

谢谢,您的答案似乎指向了正确的方向。我的类现在实现了
ISelectionProvider
,而且据我所知,它似乎在原则上是可行的。但是,当我尝试发布/触发更改时,在使用我的impl of
ISelectionProvider.addSelectionChangedListener
之前添加的每个侦听器上为
selectionChanged
提供一个
SelectionChangedEvent
(包含结构化选择)来发布/触发更改时,什么都没有发生。不知何故,资源管理器似乎没有识别出我的事件或忽略了它……我认为,您不应该触发这些事件。您的列表需要包含真实的IResource对象(并使用标签提供程序显示),然后用户与列表的交互应自动触发必要的事件。我的猜测是,您的列表只包含纯字符串(例如文件名),可能是吗?几乎是“我的列表”包含我自己的/自定义对象,这些对象用作包装器,存储
IResource
以及其他数据。这是因为列表/树视图中的资源是依赖项跟踪/搜索的结果。我的元数据包含搜索者找到资源的上下文信息。因此,即使相同的资源也可能在列表中出现多次,但元数据不同。eclipse常见问题页面应该是@im\u chc:Thank,fixed。糟糕的是,我错过了这里,尽管我自己在解析器中报告了这个bug: