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