如何以编程方式访问 Eclipse 变量池?

How to programatically access the Eclipse variable pool?

我已经通过 org.eclipse.ui.handlers 扩展点注册了一个处理程序,并添加了一个 enabledWhen 条件来检查 Eclipse 变量池中的变量 selection。这工作得很好,但现在我想将此行为复制到我在视图中显示的 SWT 按钮。

我的问题如下:如何访问 Eclipse 变量池以获取 selection 变量以侦听选择事件并随后调用 button.setEnabled(true/false).

您使用选择服务 ISelectionService 来侦听选择更改。在视图或编辑器中,您可以使用:

ISelectionService selectionService = getSite().getService(ISelectionService.class);

然后您可以使用

public void addSelectionListener(ISelectionListener listener);

监听所有选择更改的方法,或者您可以使用

public void addSelectionListener(String partId, ISelectionListener listener);

聆听特定部分的选择变化。