【问题标题】:Get projects to be build in eclipse获取要在 Eclipse 中构建的项目
【发布时间】:2012-09-14 17:59:58
【问题描述】:

在 Eclipse 工具栏中,当您将鼠标悬停在构建按钮上时,它会出现一个工具提示 说明当前选择构建哪些项目。有没有办法在我的 Eclipse 插件中获取这些信息?我考虑过使用 ISelectionListener 来实现一些东西,以继续跟踪选择了哪些项目,但如果我可以从构建按钮所在的同一位置获取它们,则没有理由这样做。

【问题讨论】:

  • 您对显示正在构建项目的按钮的概念是错误的。该按钮显示了一个启动配置,它可能正在构建一个项目、许多项目或做完全不同的事情(如启动测试、运行 Maven 执行或其他)。那么您真正想解决什么问题?该按钮方法是一种解决方案描述,可能不是一个好的方法。
  • 我想要的只是跟踪选择了哪些项目,就像构建按钮所做的那样。我不在乎那个按钮将所选项目用于什么。我只希望选择机制来获取它们,我认为这可能是从该按钮获取该信息的快捷方式,而不是实现具有相同功能的 ISelectionListener。最后,我最终创建了 ISelectionListener,因为我不知道如何从该按钮中提取该信息。
  • 我建议您也给出自己的评论作为答案,因为选择侦听器最好的解决方案。 :)
  • 谢谢!我只是将实现发布为答案:)

标签: java eclipse eclipse-plugin eclipse-rcp


【解决方案1】:

好的,这个问题的答案是创建我自己的 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());

            }
        }
    }
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    相关资源
    最近更新 更多