1
在Eclipse工具欄,當你將鼠標放在構建按鈕,它與項目目前選定的是構建一個提示 說法出現。有沒有辦法在我的eclipse插件中獲取這些信息?我想過使用ISelectionListener實現一些東西來跟蹤哪些項目被選中,但是如果我可以從構建按鈕所在的同一位置獲取它們,沒有理由這樣做。獲取項目是建立在Eclipse
在Eclipse工具欄,當你將鼠標放在構建按鈕,它與項目目前選定的是構建一個提示 說法出現。有沒有辦法在我的eclipse插件中獲取這些信息?我想過使用ISelectionListener實現一些東西來跟蹤哪些項目被選中,但是如果我可以從構建按鈕所在的同一位置獲取它們,沒有理由這樣做。獲取項目是建立在Eclipse
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());
}
}
}
};
你的那個按鈕展示在建項目的觀念是錯誤的。該按鈕顯示一個啓動配置,這可能是構建一個項目,許多項目或做完全不同的事情(如啓動測試,運行Maven執行或其他)。 那麼你真的想要解決什麼_problem_?該按鈕方法是_solution_描述,可能不是一個好的方法。 – Bananeweizen
我想要的只是跟蹤哪些項目正在按照構建按鈕的方式進行選擇。我不在乎那個按鈕使用了選定的項目。我只是想要選擇機制來獲取它們,我認爲這可能是從該按鈕獲取該信息的快捷方式,而不是實現具有相同功能的ISelectionListener。最後,我最終創建了ISelectionListener,因爲我無法弄清楚如何從該按鈕中提取信息。 – Kyriakos
我建議你給自己的評論也作爲答案,因爲選擇傾聽者_is_是最好的解決方案。 :) – Bananeweizen