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