【问题标题】:Programmatically selecting/expanding a folder resource in Project Explorer在 Project Explorer 中以编程方式选择/扩展文件夹资源
【发布时间】:2013-10-04 21:08:12
【问题描述】:

在 Eclipse RCP 中,我以编程方式在项目中创建资源(包含文件的文件夹),我希望在项目资源管理器中选择并展开文件夹(我知道它的路径)(假设它已打开)。效果应该和“Link with Editor”按钮类似,但是这里的资源不是在编辑器中打开的。

【问题讨论】:

    标签: java eclipse-plugin eclipse-rcp


    【解决方案1】:

    首先获取工作台页面-

    在视图或编辑器中使用:

    IWorkbenchPage page = getSite().getPage();
    

    其他地方使用

    page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
    

    找到视图,ProjectExplorer视图id在IPageLayout.ID_PROJECT_EXPLORER中给出

    IViewPart view = page.findView(IPageLayout.ID_PROJECT_EXPLORER);
    

    项目浏览器视图实现了ISetSelectionTarget,所以你可以这样做:

    ((ISetSelectionTarget)view).selectReveal(new StructuredSelection(object to show));
    

    或者在 Java 16 以后使用 instanceof 类型模式:

    if (view instanceof ISetSelectionTarget setSel) {
       setSel.selectReveal(new StructuredSelection(object to show));
    }
    

    【讨论】:

    • 谢谢。但是,请回想一下,我的“要显示的对象”不是 UI 元素而是资源(例如,IFolder),这样行吗?
    • 它应该期待一个资源
    • 我尝试将其传递给 IFolder 并且 tt 按预期工作。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多