`
javababy1
  • 浏览: 1220213 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

方便管理plugin或rcp的icons

阅读更多
每个UI程序都离不开图片,一般的Eclipse插件,在一个类中定义了若干静态常量,每一个常量指定一个icon的名字,在程序中用到图片的时候,通过这个常量计算得到图片。Eclipse的插件一般规模较大,图片很多,而且分不同的像素,彩色,灰白等。这样有利于统一的管理和开发人员的沟通。
但并不是每个plugin或者rcp都要用到这么多图片,如果只有很少的图片的话,可以用图片的名字作为key,来存取图片。程序例子如下:
public class ImageShop {
private static ImageRegistry register = new ImageRegistry();
private static Set keys = new HashSet();
static {
initial();
}
public static ImageDescriptor getDescriptor(String key) {
ImageDescriptor image = register.getDescriptor(key);
if (image == null) {
image = ImageDescriptor.getMissingImageDescriptor();
}
return image;
}
public static Image get(String key) {
Image image = register.get(key);
if (image == null) {
image = ImageDescriptor.getMissingImageDescriptor().createImage();
}
return image;
}
public static String[] getImageKey() {
return (String[]) keys.toArray(new String[keys.size()]);
}
private static void initial() {
Bundle bundle = Platform.getBundle(PwdgatePlugin.ID);
URL url = bundle.getEntry("icons");
try {
url = Platform.asLocalURL(url);
} catch (Exception e) {
PwdgatePlugin.log("get root path", e);
}
File file = new File(url.getPath());
File[] images = file.listFiles();
for (int i = 0; i < images.length; i++) {
File f = images[i];
if (!f.isFile()) {
continue;
}
String name = f.getName();
if (!name.endsWith(".gif")) {
continue;
}
String key = name.substring(0, name.indexOf('.'));
URL fullPathString = bundle.getEntry("icons/" + name);
ImageDescriptor des = ImageDescriptor.createFromURL(fullPathString);
register.put(key, des);
keys.add(key);
}
}
}
所有的图片都放在根目录/icons目录下,在系统中如果用到名字为default.gif的图片,只要调用ImageShop.get(“default”)即可;有时在Action中需要用到ImageDescriptor,调用ImageShop. getDescriptor(“default”)就可以取到。
分享到:
评论

相关推荐

    plugin1_RCP菜单_teamcenter_

    在实际项目中,可能需要多个plugin.xml文件来管理不同功能的插件或组织更复杂的菜单结构。每个plugin.xml文件负责一部分菜单的定义,然后在运行时合并成最终的用户界面。 总结起来,"plugin1_RCP菜单_teamcenter_...

    RCP 常见的扩展点指南

    "RCP 常见的扩展点指南" RCP(Rich Client Platform)是 Eclipse 基金会推出的一个基于 Java 的开源平台,旨在提供一个通用的客户端应用程序开发平台。RCP 的扩展点是其核心组成部分之一,本节将详细介绍 RCP 的...

    Eclipse RCP开发教程

    Eclipse 提供了声明式的方式,通过 XML 配置文件(例如 plugin.xml 或 .product 文件)定义 Actions,这种方式更加灵活,易于维护和扩展。 **5. 视图(View)和编辑器(Editor)** 视图和编辑器是 RCP 应用中展示...

    rcp欢迎界面

    plugin.xml文件是RCP应用程序的配置文件,用于定义插件的扩展点和功能。在plugin.xml文件中,我们可以定义intro扩展点,例如: ```xml point="org.eclipse.ui.intro"&gt; class="org.eclipse.ui.intro.config....

    基于RCP实现图书销售管理系统

    `plugin.xml`是RCP插件的配置文件,定义了插件的元数据,包括其提供的视图、编辑器和其他功能。`bin`目录存放的是编译后的Java类文件,`META-INF`包含了一些元数据,如MANIFEST.MF文件。`icons`目录用于存放应用图标...

    rcp自己通过扩展点新建java项目

    总结来说,`rcp自己通过扩展点新建java项目`是一个涉及到Eclipse RCP插件开发、扩展点注册、向导实现和资源管理的综合性任务。掌握这个过程不仅有助于提升Eclipse RCP应用的用户体验,也是深入理解Eclipse插件系统的...

    RCP相关问题汇总

    在 RCP 项目中,`build.properties` 和 `plugin.xml` 是两个核心文件。`build.properties` 文件定义了插件构建过程中的各种设置,包括哪些文件和目录应该被包含在最终的可执行包中。而 `plugin.xml` 文件则包含了...

    Eclipse RCP程序ViewPart占位功能的实现

    在Eclipse RCP中,ViewPart是用户界面中的一个组件,它通常显示特定的数据或提供交互式操作。每个ViewPart都有自己的ID和标签,可以被用户通过工作台(Workbench)的视图菜单进行打开和关闭。 占位功能...

    ECLIPSE RCP Develpment

    例如:`platform:/plugin/test/icons/save_edit.gif`。 ##### 模型元素(Model Element) Eclipse 4.x RCP开发中使用了一系列模型元素来描述应用程序的不同方面: - **MApplication**:表示应用程序对象。可以用来...

    EclipseRCP四常用技术基础知识PPT课件.pptx

    项目创建完成后,将默认的包名改为特定的命名约定,如`**.**.core`,同时更新`plugin.xml`文件中的`&lt;run&gt;`和`&lt;perspective&gt;`标签,以指定应用程序的入口点和透视图类。此外,建立`lib`和`icons`目录,分别存放依赖库...

    eclipse开发图标

    1. 图标资源管理:了解如何在Eclipse插件项目的源代码结构中组织图标文件,通常放在`res/icons`这样的目录下。 2. 图标注册:在plugin.xml文件中声明图标资源,以便Eclipse能够识别和加载它们。例如: ```xml ...

    SWT/JFace核心应用源代码

    文件名“eclipse_icons.rar”可能包含了用于Eclipse插件或RCP应用的各种图标资源,这些图标通常用于菜单项、按钮或其他UI元素,以提供直观的视觉提示。 “源代码”文件可能包含了使用SWT和JFace构建的实际程序代码...

    eclips常用扩展点

    在进行Eclipse RCP(Rich Client Platform)或者插件开发时,掌握常用的扩展点(Extension Point)至关重要。这些扩展点是插件与Eclipse平台交互的关键机制之一。本章节将详细介绍几个常见的扩展点及其应用方式,...

Global site tag (gtag.js) - Google Analytics