- 浏览: 169130 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
Vcb:
http://osgi.jxtech.net 是目前发现最好的 ...
OSGi控制台在Eclipse插件开发中的妙用 -
zxjlwt:
学习了。http://surenpi.com
OSGi控制台在Eclipse插件开发中的妙用 -
enen1982:
这个写得相当不错,找了好久,省了我一堆事,能不能复制整个目录
Eclipse插件中如何读取插件项目下的文件 -
yhyysxqygs:
用到起了
为RCP程序添加帮助支持 -
ququsxc:
这个一定要顶
Eclipse插件中如何读取插件项目下的文件
首先说明: 这个是不推荐使用的方法,并且现在有了common navigator。
最近毕业设计需要这个东西,所以一直在看。之所以
不使用common
navigator,第一是由于时间有限(毕业设计的时间只有一个月多了,现在基本还没有开始做,只是在做一些技术上的验证),所以先使用系统提供的东西
把功能性的东西实现,以后再进行优化;第二能力有限(呵呵),看了两天common
navigator的用法,发现需要自己实现的东西太多了,两天也没有理出个头绪,所以决定先不实现自己的navagator 了。
这个方法转自eclipseworld:
[FAQ] ResourceNavigator 中不显示项目 / 文件名称和图片 .
Q:
在使用
Eclipse
提供的
ResourceNavigator
(它是
IDE plugin
的一部分),在
Navigator
里新建的项目和文件时不显示名称和图片
,
怎么办
?
A:
目前这个
ResourceNavigator
不被鼓励用在
RCP
程序里,以后版本的
Eclipse
可能会提供更合适的插件。当前解决方法为
,
在
WorkbenchAdvisor
方法中加入下面的代码
:
// 注册Workbench变量
WorkbenchAdapterBuilder.registerAdapters();
// 声明Workbench图片
declareWorkbenchImages();
}
private void declareWorkbenchImages() ... {
final String ICONS_PATH = " $nl$/icons/full/ " ; // $NON-NLS-1$
final String PATH_ELOCALTOOL = ICONS_PATH + " elcl16/ " ;
// Enabled toolbar icons. // $NON-NLS-1$
final String PATH_ETOOL = ICONS_PATH + " etool16/ " ; // Enabled toolbar icons. // $NON-NLS-1$
final String PATH_DTOOL = ICONS_PATH + " dtool16/ " ; // Disabled toolbar icons. // $NON-NLS-1$
final String PATH_OBJECT = ICONS_PATH + " obj16/ " ; // Model object icons // $NON-NLS-1$
final String PATH_WIZBAN = ICONS_PATH + " wizban/ " ; // Wizard icons // $NON-NLS-1$
Bundle ideBundle = Platform.getBundle(IDEWorkbenchPlugin.IDE_WORKBENCH);
declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_ETOOL_BUILD_EXEC, PATH_ETOOL + " build_exec.gif " , false ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_ETOOL_BUILD_EXEC_HOVER, PATH_ETOOL + " build_exec.gif " , false ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_ETOOL_BUILD_EXEC_DISABLED, PATH_DTOOL + " build_exec.gif " , false ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_ETOOL_SEARCH_SRC, PATH_ETOOL + " search_src.gif " , false ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_ETOOL_SEARCH_SRC_HOVER, PATH_ETOOL + " search_src.gif " , false ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_ETOOL_SEARCH_SRC_DISABLED, PATH_DTOOL + " search_src.gif " , false ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_ETOOL_NEXT_NAV, PATH_ETOOL + " next_nav.gif " , false ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_ETOOL_PREVIOUS_NAV, PATH_ETOOL + " prev_nav.gif " , false ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_WIZBAN_NEWPRJ_WIZ, PATH_WIZBAN + " newprj_wiz.gif " , false ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_WIZBAN_NEWFOLDER_WIZ, PATH_WIZBAN + " newfolder_wiz.gif " , false ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_WIZBAN_NEWFILE_WIZ, PATH_WIZBAN + " newfile_wiz.gif " , false ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_WIZBAN_IMPORTDIR_WIZ, PATH_WIZBAN + " importdir_wiz.gif " , false ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_WIZBAN_IMPORTZIP_WIZ, PATH_WIZBAN + " importzip_wiz.gif " , false ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_WIZBAN_EXPORTDIR_WIZ, PATH_WIZBAN + " exportdir_wiz.gif " , false ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_WIZBAN_EXPORTZIP_WIZ, PATH_WIZBAN + " exportzip_wiz.gif " , false ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle,
IDEInternalWorkbenchImages.IMG_WIZBAN_RESOURCEWORKINGSET_WIZ, PATH_WIZBAN + " workset_wiz.gif " , false ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_DLGBAN_SAVEAS_DLG, PATH_WIZBAN + " saveas_wiz.gif " , false ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle, IDE.SharedImages.IMG_OBJ_PROJECT, PATH_OBJECT + " prj_obj.gif " , true ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle, IDE.SharedImages.IMG_OBJ_PROJECT_CLOSED, PATH_OBJECT + " cprj_obj.gif " , true ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle, IDE.SharedImages.IMG_OPEN_MARKER, PATH_ELOCALTOOL + " gotoobj_tsk.gif " , true ); // $NON-NLS-1$
// task objects
declareWorkbenchImage(ideBundle, IDE.SharedImages.IMG_OBJS_TASK_TSK, PATH_OBJECT + " taskmrk_tsk.gif " , true ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle, IDE.SharedImages.IMG_OBJS_BKMRK_TSK, PATH_OBJECT + " bkmrk_tsk.gif " , true ); // $NON-NLS-1$
String string = IDEInternalWorkbenchImages.IMG_OBJS_COMPLETE_TSK;
declareWorkbenchImage(ideBundle, string, PATH_OBJECT + " complete_tsk.gif " , true ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_OBJS_INCOMPLETE_TSK, PATH_OBJECT + " incomplete_tsk.gif " , true ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_OBJS_WELCOME_ITEM, PATH_OBJECT + " welcome_item.gif " , true ); // $NON-NLS-1$
declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_OBJS_WELCOME_BANNER, PATH_OBJECT + " welcome_banner.gif " , true ); // $NON-NLS-1$
}
private void declareWorkspaceImage(Bundle ideBundle, String symbolicName, String path, boolean shared) ... {
URL url = Platform.find(ideBundle, new Path(path));
ImageDescriptor desc = ImageDescriptor.createFromURL(url);
getWindowConfigurer().getWorkbenchConfigurer().declareImage(symbolicName, desc, shared);
}
当然,你还要在
plugin dependencies
里加上
org.eclipse.ui.ide
和
org.eclipse.ui.views
,所以你的
RCP
程序会变得更大,这就是代价。
(注:以上是原帖,但个人发现有两个错误:1、最后一个方法名称应该为declareWorkbenchImage ,这个就是前面被调用了n次的方法,这个应该是原作者笔误;2、最后一个方法的最后一条语句:如果是在类workbenchadvisor中调用的话,应该去掉前面的getWindowConfigure,直接
)
另外,上面有些东西应该是用不到的,可以去掉,不过我没有验证。
发表评论
-
Eclipse的2012年规划
2012-02-10 09:42 951最近看到了一篇Eclipse基金会Executive Dire ... -
Eclipse RCP P2 (3.6)
2011-07-12 10:42 1471暂时没空整理,参考资料: http://wiki.eclip ... -
OSGi控制台在Eclipse插件开发中的妙用
2011-03-17 15:05 6051OSGi的实现本身有一个控制台,提供插件的查看和管理功 ... -
eclipse项目集锦
2010-06-03 11:34 90收集Eclipse官方项目及其简单介绍。 Eclipse I ... -
Eclipse December Splash
2009-12-22 10:52 960nice. -
关于在Eclipse中使用Ant中文路径乱码的错误
2009-12-10 09:41 2887情况是: 1. 有一个项目,这个项目的路径没有使用默认路径, ... -
关于RCP项目使用UTF-8编码,导出后中文乱码的解决方法。
2009-10-28 14:51 27171.右键单击build.properites文件,&quo ... -
视图和编辑器的区别
2009-08-19 11:30 1179When they first start to wri ... -
ActionSet里多个Action在工具栏上出现的顺序
2009-07-22 15:33 1347按照plugin.xml里,定义顺序的相反的顺序 -
IResource接口中的获取位置的几个方法比较
2009-06-15 19:49 1283以某个文件为例,各方法的结果如下: getFullPath: ... -
插件开发中问遇到的小问题记录
2009-04-01 15:17 36711.添加第三方包以后, ... -
Eclipse插件中如何读取插件项目下的文件
2009-03-02 22:35 6047在进行插件开发的时候,有的时候希望把某些配置文件,或者数据文件 ... -
plugin.xml文件中控制可见性和可用性总结。
2009-02-24 23:39 0Eclipse插件开发中最常见的就是一些使用平台提供的一些扩展 ... -
关于在插件开发中遇到的NoClassDefineFound异常。
2008-07-18 15:25 1258情况是: 1.两个插件,插件B依赖于插件A,并且使用了A中的类 ... -
关于使用Junit对Eclipse插件项目进行单元测试。
2008-07-16 15:53 34971.创建一个插件测试项目;即创建一个普通的插件项目。 2.添加 ... -
【转】Eclipse CVS _ HOW TO
2008-07-02 11:12 2967CVS Howto From Eclipsepedia Ju ... -
怎样让你的插件功能部件出现在Eclipse的about对话框中
2008-06-16 21:05 14501.首先要有一个功能部件项目 ,并且设置其ID与插件项目相同 ... -
【转】Open an editor on something that is not a file
2008-06-05 21:17 1391转自EclipseFAQ Since 3.3 you can ... -
【转】eclipse.ini说明
2008-06-05 21:12 2089-vmargs -Xms128M -Xmx512M -XX:P ... -
关于Eclipse中的选择服务(SelectionService)V1.0
2008-06-05 21:06 2687翻译自下面文章。还没有完成翻译,因为最近没有精力做这个事情,又 ...
相关推荐
4. **图标支持**:在描述中提到,项目图标可以正常显示,这表明CNF支持根据资源类型显示相应的图标,提高了用户界面的易用性和视觉效果。 5. **插件扩展**:Eclipse RCP的核心之一是插件系统,CNF也是基于这个系统...
首先,Common Navigator是Eclipse RCP中用于显示项目、文件和其他资源的视图。它使用插件机制,允许开发者自定义资源的显示方式,包括图标、布局以及行为。在这个demo中,我们看到的是一个可以运行的基础实例,但...
在RCP中,Navigator是用户界面的一个关键组件,它提供了类似于资源管理器的视图,允许用户浏览和操作项目。这个压缩包包含了RCP应用中关于Navigator的一个示例,以及如何自定义“新建”(New) 右键菜单的操作。 在...
Eclipse RCP中使用第三方包 Eclipse RCP(Rich Client Platform)是一种基于Java的插件式软件架构,允许开发者创建跨平台的桌面应用程序。使用Eclipse RCP,可以快速构建功能强大的客户端应用程序。然而,在实际...
- **系统托盘和定时提示**:系统托盘图标和定时气泡提示可以增强应用的用户体验,提醒用户有关信息或操作。 - **图片缓冲处理**:为了提高性能,RCP系统常使用图片缓冲技术,减少图像加载时间。 - **品牌化应用程序*...
在Java RCP中使用JNI,主要是为了访问特定于平台的功能,提升性能,或者调用已有的本地库。 1. **JNI简介** JNI是一种接口,允许Java代码与其他语言编写的代码进行通信。它定义了一套规范,使得Java虚拟机(JVM)...
《ECLIPSE+RCP应用系统开发方法与实战》这本书是高岗先生关于使用Eclipse RCP(Rich Client Platform)进行应用系统开发的一本实战指南。Eclipse RCP是Eclipse IDE的一部分,它提供了一个框架,使得开发者可以构建...
在"eclipse rcp应用系统开发方法与实战源代码.zip"中,我们可以学习到以下关键知识点: 1. **Eclipse RCP架构**:理解Eclipse RCP的基础架构非常重要,包括插件(Plugins)、工作台(Workbench)、视图(Views)、...
在本文中,我们将深入探讨如何在Eclipse Rich Client Platform (RCP)应用程序中集成和显示JFreeChart报表。JFreeChart是一个强大的Java库,用于创建各种图表类型,如折线图、柱状图、饼图等,而RCP是Eclipse框架的一...
rcp(Rich Client Platform)是一种基于Eclipse框架的客户端应用程序开发技术,它允许开发者创建功能丰富的桌面应用,同时保持与现有系统和服务的集成。本档案管理系统就是利用rcp技术构建的,旨在提供一个高效、...
RCP项目学习实例是一个专为初学者设计的实践项目,旨在帮助他们理解和掌握RCP及Eclipse插件开发的核心概念和技术。 在RCP项目中,"补丁生成器"是一个典型的例子,它展示了如何利用RCP框架来创建一个具有特定功能的...
索尼公司生产的RCP-1500系列遥控面板(包括RCP-1500、RCP-1501和RCP-1530型号)是用于配置和控制演播室级及广播级摄像机的专业设备。这些设备提供了高级的操作便利性和功能的多样性,使得用户能够高效地进行摄影机的...
而“Eclipse RCP应用系统开发方法与实战”很可能是项目的主要代码库或者教程文档,涵盖了开发过程中的步骤和最佳实践。 开发Eclipse RCP应用不仅需要掌握Java编程,还需要熟悉Eclipse的插件开发环境(PDE)。在实践...
在“RCP中文入门教程.pdf”中,你可能会学习到如何创建一个新的RCP项目,编写插件,定义扩展点,创建视图和编辑器,以及如何管理和配置用户的首选项。教程还可能涵盖如何调试和打包RCP应用,以及如何利用Eclipse的...
RCP项目的登录窗体RCP项目的登录窗体RCP项目的登录窗体RCP项目的登录窗体
**RCP(Rich Client Platform)与OSGI详解** **RCP概述** RCP,全称为Rich Client Platform,是由Eclipse基金会开发的一种软件框架,...在实际项目中,理解并熟练运用RCP和OSGI技术,能大大提高开发效率和软件质量。
9. **调试和性能优化**:在RCP开发过程中,调试技巧和性能优化是必不可少的。学习如何使用Eclipse内置的调试工具,以及如何优化应用启动速度、内存使用和响应时间,都是提高开发效率和用户体验的关键。 10. **用户...
然而,非经营性基础设施项目和准经营性基础设施项目的融资问题一直困扰着项目管理者。这类项目往往因为缺乏有效的收入来源,难以吸引私人资本的投入,导致资金缺口巨大,严重影响了项目的推进速度与规模。为了解决这...
非常好的一本JAVA RCP入门实战的书,兼顾理论和实战。