e4设置ESelectionService Null

时间:2016-12-12 15:29:12

标签: java eclipse e4

执行方法后,我想设置当前选择null。我做到了这一点,但它没有工作。之后,selection仍保留a值,该值不为null。

    @Inject
    private ESelectionService selection;

    @Execute
    public void execute(@Named(IServiceConstants.ACTIVE_SELECTION) Foo foo, Shell shell) {
        if (true) {
           //do something!
           final Object NULL_OBJECT = new Object();
           selection.setSelection(NULL_OBJECT);
        }
    }

1 个答案:

答案 0 :(得分:1)

有多个选择服务,每个上下文一个(IEclipseContext)。您可能在错误的上下文中设置选择。

ESelectionService注入您的班级字段可能意味着您最终得到了错误的服务。始终将此作为execute方法的参数注入。

... no field injection

@Execute
public void execute(ESelectionService selection, @Named(IServiceConstants.ACTIVE_SELECTION) Foo foo, Shell shell) {