2016-02-25 31 views
2

的選擇我有這樣的工作流程:的Eclipse RCP:編程設置活動的一部分或在我的Eclipse插件獲取無效部分

  1. 獲取在Package Explorer
  2. 當前選定的項目做一些
  3. 獲取當前選擇在Package Explorer項目(同1)
  4. 做一些不同的

1(3)是重如下所示:

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

現在,問題是在選擇Package Explorer之前,因爲這是觸發工作流程的唯一方法。但是第2步更改活動部分是因爲它刷新了使其成爲活動部分的TreeView。當我現在嘗試運行3(與1的方法相同)時,出現問題:Package Explorer不再是selectionServiceactivePart,因此selection爲空。

我的問題是:有沒有辦法讓ISelectionService的某個視圖不是活動視圖?如果沒有,有沒有辦法在執行步驟3之前以編程方式設置活動部分?

順便說一句,這是一個Eclipse 3.x插件。

回答

3

如果發現IViewPart的包瀏覽器就可以訪問它ISelectionProvider直接使用:

IViewPart part = .. find package explorer view part 

IViewSite viewSite = part.getViewSite(); 

ISelectionProvider provider = viewSite.getSelectionProvider(); 

ISelection selection = provider.getSelection(); 
相關問題