Eclipse plugin 如何以编程方式获取Eclipse插件中常用的图像

Eclipse plugin 如何以编程方式获取Eclipse插件中常用的图像,eclipse-plugin,eclipse-rcp,Eclipse Plugin,Eclipse Rcp,如果某个插件希望重用由其他插件定义的图像,那么应该查找哪些位置 例如,在何处查找插件是否需要“Terminate”图标,该图标在调试插件的某处定义 我不时地搜索图像,不过在一个地方列出常用图像的位置会很有用。一些平台插件通过ImageDescriptors提供(部分)图像。不幸的是,这一切都有点不同 平台UI-org.eclipse.UI 此插件定义了在ISharedImages中公开使用的图像。要获取图像描述符,请按如下方式查询工作台的图像注册表: PlatformUI.getWorkbenc

如果某个插件希望重用由其他插件定义的图像,那么应该查找哪些位置

例如,在何处查找插件是否需要“Terminate”图标,该图标在调试插件的某处定义


我不时地搜索图像,不过在一个地方列出常用图像的位置会很有用。

一些平台插件通过
ImageDescriptor
s提供(部分)图像。不幸的是,这一切都有点不同

平台UI-org.eclipse.UI

此插件定义了在
ISharedImages
中公开使用的图像。要获取图像描述符,请按如下方式查询工作台的图像注册表:

PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_文件);
IDE-org.eclipse.ui.IDE

IDE插件向工作台映像注册表添加了更多映像,并在
IDE.ISharedImages
中列出了已注册的名称

要获取图像描述符,还可以按如下方式查询工作台的图像注册表:

PlatformUI.getWorkbench().getSharedImages().getImage(IDE.ISharedImages.IMG_OBJ_项目);
Debug-org.eclipse.ui.Debug

调试插件在
IDebugUIConstants
中定义共享图像,图像名称常量以
IMG\uuu
开头。可以通过
DebugUITools
实用程序类访问它们

例如:

DebugUITools.getImageDescriptor(IDebugUIConstants.IMG\u ACT\u RUN);
Compare-org.eclipse.Compare

compare插件直接在
CompareUI
中定义下一个和上一个图像的ImageDescriptor

例如:

ImageDescriptor next=CompareUI.DESC\u DTOOL\u next;
Team-org.eclipse.Team.ui

团队插件还使用
ISharedImage
接口来声明覆盖图像,以装饰修改的、冲突的等资源

图像描述符可通过
TeamImages
类获得:

JDT-org.eclipse.JDT.ui

JDT在提供图像时与工作台保持一致。它的
ISharedImages
接口定义了注册的名称,并且
JavaUI.getSharedImages()
允许获取相应的图像描述

直接访问图像

AbstractUIPlugin
有一个静态助手方法,可以在任意插件中获取图像的描述符

ImageDescriptor ImageDescriptor=AbstractUIPlugin.imageDescriptorFromPlugin(“the.bundle.id”,“/icons/sample image.png”);
警告:以这种方式加载图像有风险,通常应避免。图像位置不是插件API的一部分,插件作者可以选择删除或移动图像,这将破坏您的代码。如果你需要证据证明这确实发生了,看看

如果您需要一个插件中的图像,而该图像不能通过其API提供,那么您最好将该图像的副本放在您的插件中

ImageDescriptor imageDescriptor = TeamImages.getImageDescriptor( ISharedImages.IMG_DIRTY_OVR );