- 浏览: 269107 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (152)
- lucene (5)
- java (12)
- eclipse (2)
- GEF (34)
- SWT/JFACE/PLUGIN (58)
- EMF (8)
- GMF (0)
- fckeditor (1)
- AIX (1)
- 云计算 (2)
- 使用 Grails 构建富 Internet 应用程序 (1)
- Grails (1)
- 动态调用动态语言 (2)
- W3C DOM (3)
- Google Maps (1)
- 优化 (1)
- WebSphere (1)
- NSIS (1)
- 计算机安全 (1)
- Mina (2)
- Draw2d (4)
- Compass (1)
- 原创诗集 (3)
- 人生 (1)
- 翻版 (1)
- OSGI (1)
- Ubuntu (2)
- Ireport (2)
最新评论
-
扬手就是一长鞭:
移动label也无法使得save可以执行。
让连线上的Label动起来吧 -
扬手就是一长鞭:
我的save是正常的,我添加删除node或者connectio ...
让连线上的Label动起来吧 -
扬手就是一长鞭:
我也是这扥写的,可是我双击label改变他的文字时,发现sav ...
让连线上的Label动起来吧 -
ae6623:
这段代码放到哪里??
控制拖拽范围 -
ae6623:
真牛!鼠标滚轮缩放GEF画布 ..
getGraphicalV ...
GEF实现用鼠标滑轮控制画布的放大与缩小
From:http://blog.csdn.net/moneyice/archive/2006/04/25/677423.aspx
每个UI程序都离不开图片,一般的Eclipse插件,在一个类中定义了若干静态常量,每一个常量指定一个icon的名字,在程序中用到图片的时候,通过这个常量计算得到图片。Eclipse的插件一般规模较大,图片很多,而且分不同的像素,彩色,灰白等。这样有利于统一的管理和开发人员的沟通。
但并不是每个plugin或者rcp都要用到这么多图片,如果只有很少的图片的话,可以用图片的名字作为key,来存取图片。程序例子如下:
java 代码
1. public class ImageShop {
2. private static ImageRegistry register = new ImageRegistry();
3.
4. private static Set keys = new HashSet();
5. static {
6. initial();
7. }
8. public static ImageDescriptor getDescriptor(String key) {
9. ImageDescriptor image = register.getDescriptor(key);
10. if (image == null) {
11. image = ImageDescriptor.getMissingImageDescriptor();
12. }
13. return image;
14. }
15. public static Image get(String key) {
16. Image image = register.get(key);
17. if (image == null) {
18. image = ImageDescriptor.getMissingImageDescriptor().createImage();
19. }
20. return image;
21. }
22. public static String[] getImageKey() {
23. return (String[]) keys.toArray(new String[keys.size()]);
24. }
25. private static void initial() {
26. Bundle bundle = Platform.getBundle(PwdgatePlugin.ID);
27. URL url = bundle.getEntry("icons");
28. try {
29. url = Platform.asLocalURL(url);
30. } catch (Exception e) {
31. PwdgatePlugin.log("get root path", e);
32. }
33. File file = new File(url.getPath());
34. File[] images = file.listFiles();
35. for (int i = 0; i < images.length; i++) {
36. File f = images[i];
37. if (!f.isFile()) {
38. continue;
39. }
40. String name = f.getName();
41. if (!name.endsWith(".gif")) {
42. continue;
43. }
44. String key = name.substring(0, name.indexOf('.'));
45. URL fullPathString = bundle.getEntry("icons/" + name);
46. ImageDescriptor des = ImageDescriptor.createFromURL(fullPathString);
47. register.put(key, des);
48. keys.add(key);
49. }
50. }
51. }
52.
所有的图片都放在根目录/icons目录下,在系统中如果用到名字为default.gif的图片,只要调用ImageShop.get (“default”)即可;有时在Action中需要用到ImageDescriptor,调用ImageShop. getDescriptor(“default”)就可以取到。
ECLIPSE插件开发QQqun 4428632(已满) 35791487(已满) 35789284(未满)
每个UI程序都离不开图片,一般的Eclipse插件,在一个类中定义了若干静态常量,每一个常量指定一个icon的名字,在程序中用到图片的时候,通过这个常量计算得到图片。Eclipse的插件一般规模较大,图片很多,而且分不同的像素,彩色,灰白等。这样有利于统一的管理和开发人员的沟通。
但并不是每个plugin或者rcp都要用到这么多图片,如果只有很少的图片的话,可以用图片的名字作为key,来存取图片。程序例子如下:
java 代码
1. public class ImageShop {
2. private static ImageRegistry register = new ImageRegistry();
3.
4. private static Set keys = new HashSet();
5. static {
6. initial();
7. }
8. public static ImageDescriptor getDescriptor(String key) {
9. ImageDescriptor image = register.getDescriptor(key);
10. if (image == null) {
11. image = ImageDescriptor.getMissingImageDescriptor();
12. }
13. return image;
14. }
15. public static Image get(String key) {
16. Image image = register.get(key);
17. if (image == null) {
18. image = ImageDescriptor.getMissingImageDescriptor().createImage();
19. }
20. return image;
21. }
22. public static String[] getImageKey() {
23. return (String[]) keys.toArray(new String[keys.size()]);
24. }
25. private static void initial() {
26. Bundle bundle = Platform.getBundle(PwdgatePlugin.ID);
27. URL url = bundle.getEntry("icons");
28. try {
29. url = Platform.asLocalURL(url);
30. } catch (Exception e) {
31. PwdgatePlugin.log("get root path", e);
32. }
33. File file = new File(url.getPath());
34. File[] images = file.listFiles();
35. for (int i = 0; i < images.length; i++) {
36. File f = images[i];
37. if (!f.isFile()) {
38. continue;
39. }
40. String name = f.getName();
41. if (!name.endsWith(".gif")) {
42. continue;
43. }
44. String key = name.substring(0, name.indexOf('.'));
45. URL fullPathString = bundle.getEntry("icons/" + name);
46. ImageDescriptor des = ImageDescriptor.createFromURL(fullPathString);
47. register.put(key, des);
48. keys.add(key);
49. }
50. }
51. }
52.
所有的图片都放在根目录/icons目录下,在系统中如果用到名字为default.gif的图片,只要调用ImageShop.get (“default”)即可;有时在Action中需要用到ImageDescriptor,调用ImageShop. getDescriptor(“default”)就可以取到。
评论
2 楼
WIN
2010-09-03
odian1 写道
这位兄弟,可以教教我JFACE吗,JFACE网上的视频找不着,
又没有相关的中文API,我看不了英文的资料。
而网的教程大多都是HELLO_JFACE/SWT 之类的,实在无用呀!
我QQ:491906106. 希望你能指教指教!谢谢呀!
又没有相关的中文API,我看不了英文的资料。
而网的教程大多都是HELLO_JFACE/SWT 之类的,实在无用呀!
我QQ:491906106. 希望你能指教指教!谢谢呀!
ECLIPSE插件开发QQqun 4428632(已满) 35791487(已满) 35789284(未满)
1 楼
odian1
2010-09-03
这位兄弟,可以教教我JFACE吗,JFACE网上的视频找不着,
又没有相关的中文API,我看不了英文的资料。
而网的教程大多都是HELLO_JFACE/SWT 之类的,实在无用呀!
我QQ:491906106. 希望你能指教指教!谢谢呀!
又没有相关的中文API,我看不了英文的资料。
而网的教程大多都是HELLO_JFACE/SWT 之类的,实在无用呀!
我QQ:491906106. 希望你能指教指教!谢谢呀!
发表评论
-
选择workspace中的文件对话框
2011-04-09 17:57 1586ElementTreeSelectionDialog dial ... -
在插件中访问StatusLine
2011-01-17 11:26 1132WorkbenchWindow window = Platfr ... -
给RCP添加SVN功能
2011-01-03 17:26 1849三个步骤: 一、下载SVN插件到eclipse; 二、给RCP ... -
获得当前激活状态的Iproject
2010-11-30 12:48 1526/** * 获得当前工程 * @return ... -
让TableViewer支持Tab编辑
2010-10-16 08:57 1965高效的编辑无疑于tab操作,给TableViewer加tab操 ... -
实现Eclipse自身的log管理
2010-01-14 10:58 3327做插件开发的都知道当 ... -
自定义RCP外观
2010-01-13 21:52 4295如果说只需要改变RCP的皮肤可以参照IBM上的Eclipse程 ... -
SWT GC重绘心得
2010-01-13 01:10 5232如果有需求要将Composite的边框颜色改成红色,大家肯定就 ... -
在eclipse中获得当前所有打开的editor实例列表
2009-12-18 14:42 1576EditorPart[] parts = Platfor ... -
将应用默认使用XP风格
2009-12-09 16:54 1091从http://www.eclipse.org/swt/jav ... -
RCP中访问StatusLine详解
2009-11-26 15:40 2802首先给大家介绍各种情 ... -
扩展org.eclipse.ui.preferencePages的些许经验
2009-11-13 15:28 2131最近参考Eclipse插件开发 ... -
给视图添加快捷键
2009-10-11 02:46 1039上一篇博文中讲了用扩展的方式添加全局快捷键,现在本文用硬编码的 ... -
添加全局快捷键
2009-10-11 02:38 1448两种方法:一种扩展, ... -
让SWT中的text只能输入数字
2009-10-07 14:51 3173思路:给Text添加键盘输入事件,判断按下的键的ASCII码 ... -
通过ACTION的ID来获得ACTION
2009-09-28 11:43 2954现在又很多需求都需要动态去改变Action的enable/di ... -
动态关闭ViewPart
2009-09-24 18:36 1929IWorkbenchPage page = PlatformU ... -
设置TreeViewer的前景色和背景色
2009-09-23 11:54 1693让TreeViewerLabelProvider实现IColo ... -
给子控件和父控件添加相同的事件
2009-09-18 13:24 1298方法很多种,我这里介绍种最简单易懂的;触发事件得有listen ... -
SWT时间选择器
2009-09-04 16:50 3324package com.netunit.workbench.t ...
相关推荐
在实际项目中,可能需要多个plugin.xml文件来管理不同功能的插件或组织更复杂的菜单结构。每个plugin.xml文件负责一部分菜单的定义,然后在运行时合并成最终的用户界面。 总结起来,"plugin1_RCP菜单_teamcenter_...
"RCP 常见的扩展点指南" RCP(Rich Client Platform)是 Eclipse 基金会推出的一个基于 Java 的开源平台,旨在提供一个通用的客户端应用程序开发平台。RCP 的扩展点是其核心组成部分之一,本节将详细介绍 RCP 的...
Eclipse 提供了声明式的方式,通过 XML 配置文件(例如 plugin.xml 或 .product 文件)定义 Actions,这种方式更加灵活,易于维护和扩展。 **5. 视图(View)和编辑器(Editor)** 视图和编辑器是 RCP 应用中展示...
plugin.xml文件是RCP应用程序的配置文件,用于定义插件的扩展点和功能。在plugin.xml文件中,我们可以定义intro扩展点,例如: ```xml point="org.eclipse.ui.intro"> class="org.eclipse.ui.intro.config....
`plugin.xml`是RCP插件的配置文件,定义了插件的元数据,包括其提供的视图、编辑器和其他功能。`bin`目录存放的是编译后的Java类文件,`META-INF`包含了一些元数据,如MANIFEST.MF文件。`icons`目录用于存放应用图标...
总结来说,`rcp自己通过扩展点新建java项目`是一个涉及到Eclipse RCP插件开发、扩展点注册、向导实现和资源管理的综合性任务。掌握这个过程不仅有助于提升Eclipse RCP应用的用户体验,也是深入理解Eclipse插件系统的...
在 RCP 项目中,`build.properties` 和 `plugin.xml` 是两个核心文件。`build.properties` 文件定义了插件构建过程中的各种设置,包括哪些文件和目录应该被包含在最终的可执行包中。而 `plugin.xml` 文件则包含了...
在Eclipse RCP中,ViewPart是用户界面中的一个组件,它通常显示特定的数据或提供交互式操作。每个ViewPart都有自己的ID和标签,可以被用户通过工作台(Workbench)的视图菜单进行打开和关闭。 占位功能...
例如:`platform:/plugin/test/icons/save_edit.gif`。 ##### 模型元素(Model Element) Eclipse 4.x RCP开发中使用了一系列模型元素来描述应用程序的不同方面: - **MApplication**:表示应用程序对象。可以用来...
项目创建完成后,将默认的包名改为特定的命名约定,如`**.**.core`,同时更新`plugin.xml`文件中的`<run>`和`<perspective>`标签,以指定应用程序的入口点和透视图类。此外,建立`lib`和`icons`目录,分别存放依赖库...
1. 图标资源管理:了解如何在Eclipse插件项目的源代码结构中组织图标文件,通常放在`res/icons`这样的目录下。 2. 图标注册:在plugin.xml文件中声明图标资源,以便Eclipse能够识别和加载它们。例如: ```xml ...
文件名“eclipse_icons.rar”可能包含了用于Eclipse插件或RCP应用的各种图标资源,这些图标通常用于菜单项、按钮或其他UI元素,以提供直观的视觉提示。 “源代码”文件可能包含了使用SWT和JFace构建的实际程序代码...
在进行Eclipse RCP(Rich Client Platform)或者插件开发时,掌握常用的扩展点(Extension Point)至关重要。这些扩展点是插件与Eclipse平台交互的关键机制之一。本章节将详细介绍几个常见的扩展点及其应用方式,...