gpt4 book ai didi

java - eclipse RCP : Set active part programmatically or get selection of inactive part

转载 作者:行者123 更新时间:2023-11-30 06:55:10 30 4
gpt4 key购买 nike

在我的 Eclipse 插件中我有这个工作流:

  1. 在Package Explorer中获取当前选中的项目
  2. 做某事
  3. 在Package Explorer中获取当前选中的项目(同1)
  4. 做一些不同的事情

1(和 3)是这样实现的:

ISelectionService selectionService = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getSelectionService();
ISelection selection = selectionService.getSelection();
[...]

现在,问题是在 1 之前,Package Explorer 被选中,因为这是触发工作流的唯一方式。但是第 2 步更改了 Activity 部分,因为它刷新了一个 TreeView,使其成为 Activity 部分。当我现在尝试运行 3(与 1 的方法相同)时,我遇到了一个问题:Package Explorer 不再是 selectionServiceactivePart,因此 selection 为空。

我的问题是:有什么方法可以为不是 Activity View 的特定 View 获取 ISelectionService 吗?如果没有,有没有办法在执行第 3 步之前以编程方式设置 Activity 部分?

顺便说一句,这是一个 Eclipse 3.x 插件。

最佳答案

如果您找到包浏览器的 IViewPart,您可以直接使用以下方法访问它的 ISelectionProvider:

IViewPart part = .. find package explorer view part

IViewSite viewSite = part.getViewSite();

ISelectionProvider provider = viewSite.getSelectionProvider();

ISelection selection = provider.getSelection();

关于java - eclipse RCP : Set active part programmatically or get selection of inactive part,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35624592/

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