如何从 Eclipse 插件中获取包资源管理器中的选定节点

     2023-02-26     284

关键词:

【中文标题】如何从 Eclipse 插件中获取包资源管理器中的选定节点【英文标题】:How to get the selected node in the package explorer from an Eclipse plugin 【发布时间】:2010-10-09 19:19:58 【问题描述】:

我正在编写一个 Eclipse 命令插件,并希望在包资源管理器视图中检索当前选定的节点。我希望能够从返回的结果中获取所选节点驻留在文件系统上的绝对文件路径(即 c:\eclipse\test.html)。

我该怎么做?

【问题讨论】:

【参考方案1】:

第一步是获得选择服务,例如从像这样的任何视图或编辑器:

ISelectionService service = getSite().getWorkbenchWindow()
            .getSelectionService();

或者,as VonC wrote,如果您不在视图或编辑器中,您可以通过 PlatformUI 获取它。

然后,获取 Package Explorer 的选择并将其转换为 IStructuredSelection:

IStructuredSelection structured = (IStructuredSelection) service
            .getSelection("org.eclipse.jdt.ui.PackageExplorer");

从中,您可以获得您选择的 IFile:

IFile file = (IFile) structured.getFirstElement();

现在要获取完整路径,您必须获取 IFile 的位置:

IPath path = file.getLocation();

然后您最终可以使用它来获取文件的真实完整路径(除其他外):

System.out.println(path.toPortableString());

您可以在此处找到有关选择服务的更多信息:Using the Selection Service。

【讨论】:

"查看了 9 次"...没有人看这些问题 ;) 无论如何,非常详细的答案。 +1 从包资源管理器中获取选择时,如果 IFile 元素不是实例。你需要进行JDT->资源转换。 @kberg 演员阵容确实引发了异常。但是你是什么意思执行JDT->资源转换 “org.eclipse.jdt.ui.PackageExplorer”在哪里定义为常量?不喜欢魔线。【参考方案2】:

代码如下:

IWorkbenchWindow window =
    PlatformUI.getWorkbench().getActiveWorkbenchWindow();
ISelection selection = window.getSelectionService().getSelection("org.eclipse.jdt.ui.PackageExplorer");

您在类似 LuaFileWizardAction class 的 Action 中查看示例。

【讨论】:

您与 LuaFileWizardAction 类的链接似乎已损坏。它重定向到blackducksoftware.com

如何在 Eclipse 包资源管理器中更改已修改文件/包的颜色?

】如何在Eclipse包资源管理器中更改已修改文件/包的颜色?【英文标题】:Howtochangethecolorofmodifiedfiles/packagesintheEclipsePackageExplorer?【发布时间】:2016-07-0610:25:34【问题描述】:在Eclipse的包资源管理器中,我想更改已修改文件和包... 查看详情

如何防止 Eclipse 在包资源管理器中显示打开的文件

】如何防止Eclipse在包资源管理器中显示打开的文件【英文标题】:HowtopreventEclipsefromshowingtheopenedfileinpackageexplorer【发布时间】:2010-10-2207:24:04【问题描述】:不知何故,当我使用Eclipse浏览源文件时,Eclipse总是使用包资源管理器... 查看详情

Eclipse - 在项目/包资源管理器中更改字体大小

】Eclipse-在项目/包资源管理器中更改字体大小【英文标题】:Eclipse-changingfontsizeinproject/packageexplorer【发布时间】:2011-05-2620:37:48【问题描述】:我正在使用两种环境,一种是24英寸的屏幕,另一种是15英寸的。我需要第一个项目/... 查看详情

有没有办法在 Eclipse 的包资源管理器中嵌套包? [复制]

】有没有办法在Eclipse的包资源管理器中嵌套包?[复制]【英文标题】:IsthereawaytonestpackagesinEclipse\'sPackageExplorer?[duplicate]【发布时间】:2011-09-2701:27:55【问题描述】:我一直在寻找答案。谢谢。【问题讨论】:我假设您想要一个... 查看详情

resharper中的扩展管理器中搜索不到我要下载的插件?

如题想下载很多的扩展包都搜索不到,只显示最热门的几十个,之前是可以找到的,今天更新之后就搜索不到了参考技术AShegoestoawell 查看详情

如何从对象检测数据加载器中的马赛克增强中获取类标签?

】如何从对象检测数据加载器中的马赛克增强中获取类标签?【英文标题】:HowcanIgetClasslabelfromMosaicaugmentationinObjectDetectionDataloader?【发布时间】:2021-01-2719:44:16【问题描述】:我正在尝试针对多类问题训练对象检测模型。在我... 查看详情

如何从图像选择器中获取 NSData?

】如何从图像选择器中获取NSData?【英文标题】:HowtogetNSDatafromimagepicker?【发布时间】:2021-01-0623:20:34【问题描述】:我尝试将我照片库中选定视频中的视频分享到Instagram故事funcshareToInstagramStories(video:NSData)//NOTE:youneedadifferentcust... 查看详情

如何使用 PHP 从日期选择器中获取日期?

】如何使用PHP从日期选择器中获取日期?【英文标题】:HowdoIgetthedatefromadatepickerusingPHP?【发布时间】:2015-03-0510:05:42【问题描述】:如何从jqueryUIdatepicker中获取日期(如月份)并将其值保存在php中的变量中?我见过很多类似&... 查看详情

无法从 C# 和图形资源管理器中的 Sharepoint 图形获取驱动器项目和驱动器文件夹

】无法从C#和图形资源管理器中的Sharepoint图形获取驱动器项目和驱动器文件夹【英文标题】:FailingtogettingDriveitemsandDriveFoldersfromSharepointGraphinC#andGraphExplorer【发布时间】:2019-11-0710:16:34【问题描述】:我在使用GraphDrive项目时遇到... 查看详情

java示例代码_Eclipse Equinox,如何配置插件文件夹中的自动加载包

java示例代码_Eclipse Equinox,如何配置插件文件夹中的自动加载包 查看详情

有没有办法在 Eclipse 中搜索包中的文本?

...在包中搜索文本?【问题讨论】:【参考方案1】:在包资源管理器中单击包,然后按Ctrl-H并单击“ 查看详情

如何像在 Windows 资源管理器中一样在 Delphi 中获取排序顺序?

】如何像在Windows资源管理器中一样在Delphi中获取排序顺序?【英文标题】:HowtogetthesortorderinDelphiasinWindowsExplorer?【发布时间】:2011-07-0507:37:19【问题描述】:总结:我使用过的术语寻找似乎是“自然的排序”。对于操作系统中... 查看详情

Eclipse - 如何在整个项目中“将包声明更改为 ....”

...包名不再有效(代码已被移动文件夹)。有没有办法在包资源管理器中选择所有源代码并点击热键,以便为我正确解 查看详情

如何在任务管理器中获取用户列表

】如何在任务管理器中获取用户列表【英文标题】:HowtogetalistusersinTaskManager【发布时间】:2017-05-1513:50:12【问题描述】:如何在任务管理器中获取用户状态列表?我只找到了如何获取域用户列表varusersSearcher=newManagementObjectSearcher... 查看详情

从 Windows 资源管理器中打开 VS Code 中的文件夹

】从Windows资源管理器中打开VSCode中的文件夹【英文标题】:OpenfolderinVSCodefromWindowsExplorer【发布时间】:2021-02-0405:37:23【问题描述】:在安装VSCode时,我们可以选择勾选OpenwithCode。我只为文件打勾,但不为文件夹打勾。那么安装... 查看详情

在运行时,从 .Net 应用程序,如何设置任务管理器中显示的“描述”字段?

】在运行时,从.Net应用程序,如何设置任务管理器中显示的“描述”字段?【英文标题】:Atrun-time,froma.Netapplication,howdoIsetthe"description"fielddisplayedinTaskManager?【发布时间】:2012-03-0511:54:42【问题描述】:我有一个通用的可... 查看详情

swift包管理器中的“警告:没有要在包中构建的目标”错误

】swift包管理器中的“警告:没有要在包中构建的目标”错误【英文标题】:"warning:notargetstobuildinpackage"errorinswiftpackagemanager【发布时间】:2018-03-1305:04:03【问题描述】:我正在尝试使用swift包管理器将SocketIO安装到我的swif... 查看详情

Android - 获取从文件资源管理器中选择的 .txt 文件的真实路径

】Android-获取从文件资源管理器中选择的.txt文件的真实路径【英文标题】:Android-Getrealpathofa.txtfileselectedfromthefileexplorer【发布时间】:2018-08-1915:38:19【问题描述】:我正在开发一个应用程序,我希望能够在.txt文件中从应用程序... 查看详情