我在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 []視圖= 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;
}
}
請指導我改正代碼!我應該有一個像上面提到的那樣的路徑作爲輸入。
首先找出什麼是'null'。爲此,登錄/打印:'PlatformUI.getWorkbench()','PlatformUI.getWorkbench()。getActiveWorkbenchWindow()','PlatformUI.getWorkbench()。getActiveWorkbenchWindow()。getActivePage()' – MrSmith42
這裏代碼正在執行?在任何對話框裏面? – CuriousMind
這部分只是爲了突出顯示eclipse package explorer中的類或文件。首先我搜索文件,因此我有文件路徑,然後我想使用我擁有的路徑突出顯示它! –