- 浏览: 269116 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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实现用鼠标滑轮控制画布的放大与缩小
文章转自:http://www.cn-java.com/www1/?uid-550649-action-viewspace-itemid-4217
Eclipse 的资源浏览器很强大,可以很方便的查看工作空间中可供适配的资源,并且提供了对排序、过滤等功能的支持。Eclipse的RCP项目组不赞成我们在富客户端应用程序中使用ResourceNavigator,原因是ResourceNavigator的实现代码位于Eclipse IDE中,如果使用资源浏览器,生成的RCP产品将会增加二十多兆的空间,而且会增加许多我们的产品中并不使用的功能,很浪费磁盘和系统资源。他们赞成我们根据需要,为应用程序量身定做树形浏览器视图,但是,基于方便和对强大功能的追求,以及对Eclipse代码优良性的肯定,插件开发者们仍然希望将资源浏览器直接加入到我们的RCP程序中。为了满足广大Eclipse开发者强烈的要求,本文对在Eclipse RCP中使用ResourceNavigator的方法做较为全面的介绍。
同资源导航器相关的ID为:
ID: org.eclipse.ui.views.ResourceNavigator
CLASS: org.eclipse.ui.ide/org.eclipse.ui.views.navigator/ResourceNavigator.class
ICON: 位于org.eclipse.ui.ide工程目录的icons文件夹中,名称为fileNav_nav.gif。可通过解压.jar文件获得图像文件。
1. 如果我们的RCP程序中的默认透视图中要使用导航器,可能需要在RCP插件(包含有Application.java文件的插件)的plugin.xml中加入这个视图:
plugin.xml
2. 如果我们需要在RCP程序中默认显示导航器,则需要在定义的透视图(假设透视图已经定义)类中加入类似下面的代码:
Perspective.java
第1、2两行创建一个IFolderLayout实例,表示在编辑器区域左侧创建一个FolderLayout。
第3行为ResourceNavigator添加一个占位符,使用的是ResourceNavigator的ID,后面的“:*”表示还可以有更多的内容,即可以同更多的视图共享这个位置。
第4行将ResourceNavigator加入这个布局中,从而在应用程序启动,默认透视图打开时,导航器出现在页面的左侧。
3. 导航器在RCP程序中无法显示的问题。
许多开发者在使用Navigator生成RCP程序时都遇到过这样的错误:
Log
1Unable to create view: Plug-in "newPmbe.custom" was unable to instantiate class
"org.eclipse.ui.views.navigator.ResourceNavigator".
这个问题的具体描述我已经在前面的博客中介绍了,它需要安装兼容性插件同以前的系统兼容。在PDE环境下,打开plugin.xml,在“Dependencies”页面中加入下面的插件:
org.eclipse.core.runtime.compatibility
上述所说的问题便解决了。
4. 工作空间的资源在导航器中无法显示的问题。
解决了第三个问题后,导航器中的资源可以显示了,但是其中的工程文件夹图标仍然无法显示,只能光秃秃的显示一个项目名,如下图所示:
为了正确的显示项目的图标,我们需要在RCP插件的ApplicationWorkbenchAdvisor类中加入如下代码:
上面代码的第4行中的路径"icons/prj_obj.gif"为我们为工程文件夹提供的图标相对于RCP插件中的位置,YOURPlugin代表RCP插件中的插件类(或XXXActivator)
这样我们便得到了我们希望的Navigaotor:
上面3-4行代码也同时给我们提供了修改Eclipse Navigator中默认图标的一种方式。Just Enjoy it!
其他的话:
Eclipse 3.2版本出台后,Eclipse团队专门提供出了org.eclipse.ui.navigator插件,用来支持在ProjectExplorer的基础上进行的二次开发。而从GMF(Grapic Modeling Framework)2.0 M6开始,对自动生成树形浏览器视图提供了支持,所用到的正是这个插件所提供的功能强大的org.eclipse.ui.navigatorContent扩展点:http://wiki.eclipse.org/index.php/GMF_New_and_Noteworthy#2.0_M6,这使得我们在对资源定制的基础上,可以对资源中的元素进行定制,因而功能更为强大(不过这个扩展点是我见过的最为复杂的扩展点之一)。这使得我们对 ResourceNavigator的要求有所降低。Anyway,直接使用Eclipse的ResourceNavigator可以为快速定制的原型系统提供基本的支持,这对开发者来说还是非常有用的。
Eclipse 的资源浏览器很强大,可以很方便的查看工作空间中可供适配的资源,并且提供了对排序、过滤等功能的支持。Eclipse的RCP项目组不赞成我们在富客户端应用程序中使用ResourceNavigator,原因是ResourceNavigator的实现代码位于Eclipse IDE中,如果使用资源浏览器,生成的RCP产品将会增加二十多兆的空间,而且会增加许多我们的产品中并不使用的功能,很浪费磁盘和系统资源。他们赞成我们根据需要,为应用程序量身定做树形浏览器视图,但是,基于方便和对强大功能的追求,以及对Eclipse代码优良性的肯定,插件开发者们仍然希望将资源浏览器直接加入到我们的RCP程序中。为了满足广大Eclipse开发者强烈的要求,本文对在Eclipse RCP中使用ResourceNavigator的方法做较为全面的介绍。
同资源导航器相关的ID为:
ID: org.eclipse.ui.views.ResourceNavigator
CLASS: org.eclipse.ui.ide/org.eclipse.ui.views.navigator/ResourceNavigator.class
ICON: 位于org.eclipse.ui.ide工程目录的icons文件夹中,名称为fileNav_nav.gif。可通过解压.jar文件获得图像文件。
1. 如果我们的RCP程序中的默认透视图中要使用导航器,可能需要在RCP插件(包含有Application.java文件的插件)的plugin.xml中加入这个视图:
plugin.xml
<extension point="org.eclipse.ui.views"> <view class="org.eclipse.ui.views.navigator.ResourceNavigator" icon="icons/filenav_nav.gif" id="org.eclipse.ui.views.ResourceNavigator" name="导航器"> </view> </extension>
2. 如果我们需要在RCP程序中默认显示导航器,则需要在定义的透视图(假设透视图已经定义)类中加入类似下面的代码:
Perspective.java
IFolderLayout leftFolder = layout.createFolder("leftFolderLayout", //$NON-NLS-1$ IPageLayout.LEFT, 0.25f, editorArea); leftFolder.addPlaceholder("org.eclipse.ui.views.ResourceNavigator"+":*"); leftFolder.addView("org.eclipse.ui.views.ResourceNavigator");
第1、2两行创建一个IFolderLayout实例,表示在编辑器区域左侧创建一个FolderLayout。
第3行为ResourceNavigator添加一个占位符,使用的是ResourceNavigator的ID,后面的“:*”表示还可以有更多的内容,即可以同更多的视图共享这个位置。
第4行将ResourceNavigator加入这个布局中,从而在应用程序启动,默认透视图打开时,导航器出现在页面的左侧。
3. 导航器在RCP程序中无法显示的问题。
许多开发者在使用Navigator生成RCP程序时都遇到过这样的错误:
Log
1Unable to create view: Plug-in "newPmbe.custom" was unable to instantiate class
"org.eclipse.ui.views.navigator.ResourceNavigator".
这个问题的具体描述我已经在前面的博客中介绍了,它需要安装兼容性插件同以前的系统兼容。在PDE环境下,打开plugin.xml,在“Dependencies”页面中加入下面的插件:
org.eclipse.core.runtime.compatibility
上述所说的问题便解决了。
4. 工作空间的资源在导航器中无法显示的问题。
解决了第三个问题后,导航器中的资源可以显示了,但是其中的工程文件夹图标仍然无法显示,只能光秃秃的显示一个项目名,如下图所示:
为了正确的显示项目的图标,我们需要在RCP插件的ApplicationWorkbenchAdvisor类中加入如下代码:
ApplicationWorkbenchAdvisor public void initialize(IWorkbenchConfigurer configurer) { configurer.declareImage(IDE.SharedImages.IMG_OBJ_PROJECT, YOURPlugin.getImageDescriptor("icons/prj_obj.gif"), true); super.initialize(configurer); }
上面代码的第4行中的路径"icons/prj_obj.gif"为我们为工程文件夹提供的图标相对于RCP插件中的位置,YOURPlugin代表RCP插件中的插件类(或XXXActivator)
这样我们便得到了我们希望的Navigaotor:
上面3-4行代码也同时给我们提供了修改Eclipse Navigator中默认图标的一种方式。Just Enjoy it!
其他的话:
Eclipse 3.2版本出台后,Eclipse团队专门提供出了org.eclipse.ui.navigator插件,用来支持在ProjectExplorer的基础上进行的二次开发。而从GMF(Grapic Modeling Framework)2.0 M6开始,对自动生成树形浏览器视图提供了支持,所用到的正是这个插件所提供的功能强大的org.eclipse.ui.navigatorContent扩展点:http://wiki.eclipse.org/index.php/GMF_New_and_Noteworthy#2.0_M6,这使得我们在对资源定制的基础上,可以对资源中的元素进行定制,因而功能更为强大(不过这个扩展点是我见过的最为复杂的扩展点之一)。这使得我们对 ResourceNavigator的要求有所降低。Anyway,直接使用Eclipse的ResourceNavigator可以为快速定制的原型系统提供基本的支持,这对开发者来说还是非常有用的。
发表评论
-
选择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 ...
相关推荐
然而,在实际开发中,我们经常需要使用第三方包来实现某些功能,这篇文章将介绍如何在Eclipse RCP中使用第三方包。 首先,我们需要新建一个Eclipse RCP应用程序,然后创建一个lib目录作为存放第三方库的目录。在这...
在Eclipse RCP中,Common Navigator Framework (CNF) 是一个关键组件,它提供了一种灵活的方式来展示资源树结构,类似于Eclipse IDE中的“Package Explorer”或“Project Explorer”。"Eclipse RCP Common Navigator...
在本"Common Navigator demo"中,我们将深入探讨如何利用Eclipse RCP创建一个基于Common Navigator的简单应用,并了解如何扩展这一基础功能。 首先,Common Navigator是Eclipse RCP中用于显示项目、文件和其他资源...
10. **调试和测试**:书中还会介绍如何在Eclipse RCP环境中进行调试和编写单元测试。 11. **扩展点(Extension Points)**:这是Eclipse RCP插件系统的关键特性,允许插件之间通过定义和使用扩展点来相互协作。 12...
1. **新建“产品配置”**:在Eclipse中,你需要通过"File" -> "New" -> "Other" -> "Plug-in Development" -> "Product Configuration"来创建一个新的产品配置。这个配置定义了你的应用程序的基本属性,如应用程序的...
要在Eclipse RCP项目中使用这个语言包,首先需要将其导入到Eclipse环境中。然后,在项目的插件配置中,引用该语言包作为依赖,这样在运行时,Eclipse会自动加载并显示中文界面。对于开发插件,还需要确保插件的本地...
在"eclipse rcp应用系统开发方法与实战源代码.zip"中,我们可以学习到以下关键知识点: 1. **Eclipse RCP架构**:理解Eclipse RCP的基础架构非常重要,包括插件(Plugins)、工作台(Workbench)、视图(Views)、...
在本教程中,我们将详细介绍 Eclipse RCP 的开发过程、技术要点和注意事项,以帮助开发者快速掌握 Eclipse RCP 的开发技术。 一、Eclipse RCP 的技术要点 Eclipse RCP 的核心技术包括: 1. SWT(Standard Widget ...
eclipse RCP(Rich Client Platform)是一种基于eclipse的插件式开发平台,允许开发者使用eclipse结构风格设计弹性的可扩展的应用程序。RCP插件式开发方式可以重用eclipse中的方法和编码模式,提高开发效率和代码...
1. **创建新的Eclipse插件项目**: 在Eclipse中选择File -> New -> Other -> Plug-in Project。 2. **定义插件元数据**: 描述插件的基本信息,如名称、ID、版本号等。 3. **实现功能**: 开发插件的核心逻辑和用户界面...
虽然SWT/JFace开发基础知识是可选的,但是这些是Eclipse RCP开发中常用的图形用户界面技术,熟悉它们会对开发有所帮助。 Eclipse RCP应用的开发过程需要利用Eclipse插件开发工具PDE(Plug-in Development ...
5. **命令和服务**:Eclipse RCP中的命令(Command)和服务(Service)机制,用于实现应用的可扩展性和互操作性,读者将学习如何定义和使用这些组件。 6. **透视图和工作台**:透视图(Perspective)定义了工作空间...
标题中的“在Eclipse RCP中应用Spring OSGI 管理bean(一)”表明这是一篇关于如何在Eclipse Rich Client Platform (RCP)应用程序中集成Spring框架,并利用OSGi服务来管理Bean的教程。Eclipse RCP是一个用于构建桌面...
在“Eclipse RCP 例子程序”中,我们可能找到一系列的示例代码和项目,这些示例展示了如何利用Eclipse RCP的各种组件和机制来构建实际的应用。以下是一些关键的知识点: 1. **插件系统**:Eclipse RCP的核心是其...
【描述】中的“非常棒的一个rcp应用程序”意味着这个工程展示了Eclipse RCP的强大功能和易用性,可能是通过集成MP3播放、管理、编辑等功能来实现的。"学习学习,快来下"则提示这个项目适合学习Eclipse RCP的开发者,...
在 Eclipse RCP 中,JUnit 可以用来验证插件的行为是否符合预期。编写良好的单元测试有助于确保代码的质量和稳定性。 ##### JFace Data Binding JFace 数据绑定提供了将 UI 控件与模型对象自动同步的能力。通过...
2. **创建RCP工程**:在Eclipse中,选择"File" > "New" > "Project",然后在"Plug-in Development"类别下选择"Eclipse RCP Application",按照向导完成新工程的创建。 3. **创建视图(View)**:RCP应用中的显示...
Eclipse Rich Client Platform(RCP)是Eclipse框架下的一个核心组成部分,用于构建桌面应用..."Eclipse RCP培训.zip"中的内容可能涵盖了这些方面,包括理论讲解、代码示例、练习项目等,是学习Eclipse RCP的好资源。
这个压缩包中的“ECLIPSE RCP项目源程序”包含了使用Eclipse RCP开发的一个项目的完整源代码,并且有中文注释,这对于初学者或有经验的开发者来说都是一个宝贵的资源。 Eclipse RCP的核心概念主要包括以下几个方面...
`CheckTableViewDemo.java`可能是演示如何在Eclipse RCP应用中创建和使用检查表的一个示例代码。在这个文件中,我们可以期待看到关于如何创建自定义表视图、添加复选框列以及处理用户选择事件的相关代码。开发者可能...