2012-09-12 31 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()); 

      } 
     } 
    } 
};