【问题标题】:Getting the active working set programatically in Eclipse在 Eclipse 中以编程方式获取活动工作集
【发布时间】:2014-06-26 22:28:02
【问题描述】:

谁能告诉我如何获取当前或活动的工作集,以及如何以 IProject 类型获取工作集中的所有项目?我正在尝试使用以下代码来实现它-

IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
IWorkbenchPage page = window.getActivePage();
IWorkingSetManager manager = window.getWorkbench().getWorkingSetManager();
IWorkingSet[] workingSets = manager.getWorkingSets();

这会让我获得 Eclipse 中存在的所有工作集吗? IWorkingSet.getElements() 以 IAdaptable 类型提供了我无法转换为 IProject 的所有项目详细信息?

提前感谢您!

【问题讨论】:

    标签: java eclipse eclipse-plugin


    【解决方案1】:

    您将 IAdaptable 值转换为 IProject 使用:

    IProject project = (IProject)adaptable.getAdapter(IProject.class);
    

    我不确定工作集元素是否直接向IProject 提供适配器,您可能需要使用:

    IResource resource = (IResource)adaptable.getAdapter(IResources.class);
    
    if (resource instanceof IProject)
     {
     }
    

    【讨论】:

    • 谢谢@greg-449。它工作得很好。我从你身上学到了很多。活动工作集应该出现在 getRecentWorkingSets() 函数返回的工作集列表的第一个,至少根据 Eclipse 参考书目中存在的理论,但它没有锻炼。无论如何,非常感谢您的及时帮助。
    • IWorkbenchPage 有一个 getWorkingSet 但这已被弃用,因为现在不鼓励使用全局工作集,而是每个视图都有一个单独的活动工作集。
    • 抱歉延迟回复.. 当然,现在我明白了.. vogella rcp 教程是这些主题的良好开端
    猜你喜欢
    • 2012-05-17
    • 2012-07-06
    • 2012-01-26
    • 2012-06-28
    • 2011-09-11
    • 1970-01-01
    • 2011-07-24
    • 2012-03-05
    • 2011-11-19
    相关资源
    最近更新 更多