首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何以编程方式获取Eclipse插件中常用的映像

问如何以编程方式获取Eclipse插件中常用的映像
EN

Stack Overflow用户
提问于 2016-02-16 12:45:44
回答 1查看 698关注 0票数 1

如果插件希望重用由其他插件定义的图像,那么需要查找哪些位置。

例如,如果插件需要在调试插件中的某个位置定义的“终止”图标,可以在哪里查找。

我不时地搜索图像,尽管在一个地方列出常用图像的位置是有用的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-16 12:45:44

一些平台插件通过ImageDescriptor提供(一些)图像。不幸的是,所有这些都是以一种稍微不同的方式。

平台UI - org.eclipse.ui

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

代码语言:javascript
复制
PlatformUI.getWorkbench().getSharedImages().getImage( ISharedImages.IMG_OBJ_FILE );

IDE - org.eclipse.ui.ide

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

要获得图像描述符,还可以像下面这样查询工作台的图像注册表:

代码语言:javascript
复制
PlatformUI.getWorkbench().getSharedImages().getImage( IDE.ISharedImages.IMG_OBJ_PROJECT );

Debug - org.eclipse.ui.debug

调试插件在IDebugUIConstants中定义共享映像,图像名常量以IMG_开头.它们可以通过DebugUITools实用程序类进行访问。

例如:

代码语言:javascript
复制
DebugUITools.getImageDescriptor( IDebugUIConstants.IMG_ACT_RUN );

比较- org.eclipse.compare

比较插件直接在ImageDescritpors中为下一个和以前的图像定义了CompareUI。

例如:

代码语言:javascript
复制
ImageDescriptor next = CompareUI.DESC_DTOOL_NEXT;

团队- org.eclipse.team.ui

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

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

代码语言:javascript
复制
ImageDescriptor imageDescriptor = TeamImages.getImageDescriptor( ISharedImages.IMG_DIRTY_OVR );

JDT - org.eclipse.jdt.ui

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

直接访问图像

AbstractUIPlugin有一个静态帮助方法来获取任意插件中图像的描述符。

代码语言:javascript
复制
ImageDescriptor imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin( "the.bundle.id", "/icons/sample-image.png" );

警告:以这种方式加载图像的是危险的,通常应该避免。图像位置不是插件API的一部分,插件作者可以选择删除或移动图像,这将破坏您的代码。如果需要证明这种情况确实发生了,请看一下这个职位。

如果您需要一个无法通过API提供的插件映像,您应该更愿意将该映像的副本放在插件中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35433026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档