2012-09-12 33 views
1

在Eclipse工具欄,當你將鼠標放在構建按鈕,它與項目目前選定的是構建一個提示 說法出現。有沒有辦法在我的eclipse插件中獲取這些信息?我想過使用ISelectionListener實現一些東西來跟蹤哪些項目被選中,但是如果我可以從構建按鈕所在的同一位置獲取它們,沒有理由這樣做。獲取項目是建立在Eclipse

+0

你的那個按鈕展示在建項目的觀念是錯誤的。該按鈕顯示一個啓動配置,這可能是構建一個項目,許多項目或做完全不同的事情(如啓動測試,運行Maven執行或其他)。 那麼你真的想要解決什麼_problem_?該按鈕方法是_solution_描述,可能不是一個好的方法。 – Bananeweizen

+0

我想要的只是跟蹤哪些項目正在按照構建按鈕的方式進行選擇。我不在乎那個按鈕使用了選定的項目。我只是想要選擇機制來獲取它們,我認爲這可能是從該按鈕獲取該信息的快捷方式,而不是實現具有相同功能的ISelectionListener。最後,我最終創建了ISelectionListener,因爲我無法弄清楚如何從該按鈕中提取信息。 – Kyriakos

+0

我建議你給自己的評論也作爲答案,因爲選擇傾聽者_is_是最好的解決方案。 :) – Bananeweizen

回答

2

OK了這個問題的答案是創建自己的ISelectionListener。

@Override 
public void selectionChanged(IWorkbenchPart part, ISelection selection) { 
    Object[] allselections= null; 
    selectedProjects.clear(); 
    // TODO Auto-generated method stub 

    if(selection instanceof IStructuredSelection) { 
     allselections = ((IStructuredSelection)selection).toArray(); 
     for(Object element: allselections){ 

      if (element instanceof IResource) { 
       selectedProjects.add(((IResource)element).getProject()); 
      } else if (element instanceof IAdaptable) { 
       IResource resource = null; 
       IAdaptable a = (IAdaptable)element; 
       resource = (IResource)a.getAdapter(IResource.class); 
       selectedProjects.add(resource.getProject()); 

      } 
     } 
    } 
};