2016-12-12 6 views
0

私の実行メソッドの後に、現在の選択をnullに設定したい。私はこれを遠く持っているが、うまくいかない。その後、selectionにはa値が保持されますが、これはnullではありません。e4 Set ESelectionService 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

複数の選択サービスがコンテキストごとに1つ(IEclipseContext)あります。選択内容を間違ったコンテキストで設定している可能性があります。

クラスのフィールドとしてESelectionServiceを注入すると、間違ったサービスになる可能性があります。常にこれをexecuteメソッドのパラメータとして注入します。

... no field injection 

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

ありがとうございました。出来た!!素晴らしい – Hammelkeule

関連する問題