【问题标题】:How to get selected project from Navigator view in Eclipse?如何从 Eclipse 的导航器视图中获取选定的项目?
【发布时间】:2014-10-14 12:30:17
【问题描述】:

我用来从 Project Explorer 中获取选定项目的 ISelection 聚焦于 Project Explorer 窗口:

IProject project = null;    





    ISelectionService  selectionService=PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();

    ISelection selection = selectionService.getSelection("org.eclipse.jdt.ui.ProjectExplorer");    



    if(selection instanceof IStructuredSelection) {    
        Object element = ((IStructuredSelection)selection).getFirstElement();    

        if (element instanceof IResource) {    
            project= ((IResource)element).getProject();    

        }  
        else if (element instanceof IPackageFragmentRoot) {    
            IJavaProject jProject = ((IPackageFragmentRoot)element).getJavaProject(); 
            project = jProject.getProject();
        }
        else if (element instanceof IJavaElement) {    
            IJavaProject jProject= ((IJavaElement)element).getJavaProject();    
            project = jProject.getProject();    
        }

我需要将选择集中在 Navigator 上,我在 getSelection 方法中尝试了 org.eclipse.jdt.internal.ui.Navigator 但没有成功....

如何从导航视图中获取选中的项目?

【问题讨论】:

    标签: java eclipse eclipse-rcp


    【解决方案1】:

    导航器视图的 id 是:

    org.eclipse.ui.views.ResourceNavigator
    

    对于 Project Explorer 视图是

    org.eclipse.ui.navigator.ProjectExplorer
    

    【讨论】:

    • 如何获取当前选定的视图:项目浏览器或导航器视图?
    • 您可以使用IPartService.getActivePart() 获取活动部分(但这可能是一个编辑器)。您可以使用IPartListener2 侦听器来侦听活动部分的更改,以便记住最后一个活动视图。
    • 但是我可以检查活动部分是 Project Explorer 还是 Navigator 吗?
    • 您可以使用IWorkbenchPart.getSite().getId()获取活动部分的id。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多