gpt4 book ai didi

java - 在包资源管理器中突出显示文件

转载 作者:行者123 更新时间:2023-11-30 04:30:53 25 4
gpt4 key购买 nike

我在 Eclipse 中开发了一个插件,它向 Package Explorer 添加了一个用于搜索类的选项。因此插件搜索类并返回类路径。然后它应该在资源管理器中突出显示该类。

我用的是这个:

IPath iPath = new Path(path);
IFile file = project.getFile(iPath);

file = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(iPath);

ISelection selection = new StructuredSelection(file);

IViewReference[] views = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getViewReferences();
PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getActivePage().resetPerspective();
for(IViewReference view:views){
if("org.eclipse.jdt.ui.PackageExplorer".equals(view.getId())){
IViewPart pExplorer = view.getView(true);
pExplorer.getViewSite().getSelectionProvider().setSelection(selection);
break;
}
}

但是,这会在以下行中返回 NullPointerException:IViewReference[] View = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getViewReferences();

任何提示或帮助将不胜感激。

<小时/>

感谢您的评论..现在我的问题是这段代码没有为我突出显示资源管理器中的类!

String path = "D:\\Programs\\eclipse\\runtime-EclipseApplication\\tessssst\\src\\testClass.java";

IPath iPath = new Path(path);
IFile file = project.getFile(iPath);

file = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(iPath);

ISelection selection = new StructuredSelection(file);

IViewReference[] views = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getViewReferences();
PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getActivePage().resetPerspective();
for(IViewReference view:views){
if("org.eclipse.jdt.ui.PackageExplorer".equals(view.getId())){
IViewPart pExplorer = view.getView(true);
pExplorer.getViewSite().getSelectionProvider().setSelection(selection);
break;
}
}

请指导我修改代码!我应该有一个像我上面提到的路径作为输入。

最佳答案

考虑:

:

public static IWorkbench getWorkbench() {
if (Workbench.getInstance() == null) {
// app forgot to call createAndRunWorkbench beforehand
throw new IllegalStateException(WorkbenchMessages.PlatformUI_NoWorkbench);
}
return Workbench.getInstance();
}

调用插件时可能未调用 createAndRunWorkbench()(如 this tutorial 中的调用方式)。

关于java - 在包资源管理器中突出显示文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14673587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com