使用eclipse自带的Navigator
来源:互联网 发布:java 删除临时文件 编辑:程序博客网 时间:2024/05/26 22:55
Eclipse 的资源浏览器很强大,可以很方便的查看工作空间中可供适配的资源,并且提供了对排序、过滤等功能的支持。Eclipse的RCP项目组不赞成我们在富客户端应用程序中使用ResourceNavigator,原因是ResourceNavigator的实现代码位于Eclipse IDE中,如果使用资源浏览器,生成的RCP产品将会增加二十多兆的空间,而且会增加许多我们的产品中并不使用的功能,很浪费磁盘和系统资源。他们赞成我们根据需要,为应用程序量身定做树形浏览器视图,但是,基于方便和对强大功能的追求,以及对Eclipse代码优良性的肯定,插件开发者们仍然希望将资源浏览器直接加入到我们的RCP程序中。为了满足广大Eclipse开发者强烈的要求,本文对在Eclipse RCP中使用ResourceNavigator的方法做较为全面的介绍。
这是很多博客中都写到的。这里再总结一下。
有两种方式的使用:第一,直接使用eclipse自带的(不作修改)。
首先,在plugin.xml的dependencies页中加入org.eclipse.ui.ide和org.eclipse.ui.views(这也就是为什么不提倡在RCP中应用,这样就会增加20多M的空间)
其次,在plugin.xml的Extensions页中加入相应的扩展,也可以直接在plugin.xml中加入下面的代码:
1 <extension
2 point="org.eclipse.ui.views">
3 <view
4 class="org.eclipse.ui.views.navigator.ResourceNavigator"
5 icon="icons/filenav_nav.gif"
6 id="org.eclipse.ui.views.ResourceNavigator"
7 name="导航器">
8 </view>
9 </extension>
最后,在Perspective类中的createInitialLayout方法中加入下面的代码:
1 IFolderLayout leftFolder = layout.createFolder("leftFolderLayout", //$NON-NLS-1$
2 IPageLayout.LEFT, 0.25f, editorArea);
3 leftFolder.addPlaceholder("org.eclipse.ui.views.ResourceNavigator"+":*");
4 leftFolder.addView("org.eclipse.ui.views.ResourceNavigator");
解释:第1、2两行创建一个IFolderLayout实例,表示在编辑器区域左侧创建一个FolderLayout。第3行为ResourceNavigator添加一个占位符,使用的是ResourceNavigator的ID,后面的“:*”表示还可以有更多的内容,即可以同更多的视图共享这个位置。第4行将ResourceNavigator加入这个布局中,从而在应用程序启动,默认透视图打开时,导航器出现在页面的左侧。
第二种使用方法就是继承ResourceNavigator类以实现自己需要的功能。
一,创建自己的视图类
public class NavigatorView extends ResourceNavigator,
这个类会在后面详细介绍,并在RCP的透视图类的createInitialLayout方法中
创建加入,具体代码如下:
但是如果你这样就运行是会出错的,因为你还没有定义view 的Extensions,具体方法在Plugin.xml文件的extensions里面新建一个ui.view的扩展,并设置名字和id及class(NavigatorView)
二,制订你的需求--NavigatorView class。
如果你看ResourceNavigator类的代码,你会发现ResourceNavigator的所有action创建都是在
MakeAction里面由一个MainActionGroup类的对象完成的。
所以我们就在NavigatorView里面重载makeActions方法,
并写自己的ActionGroup类--NavigatorActionGroup。
{
public static final String ID = "com.ibm.crl.bok.ui.ui.NavigatorView";
private NavigatorActionGroup navigatorActionGroup;
protected void makeActions() {
navigatorActionGroup = new NavigatorActionGroup(this);
setActionGroup(navigatorActionGroup);
}
}三,NavigatorActionGroup类
完全copy MainActionGroup类的代码,然后接下来就是你自己按需求更改了,假设你想把右键菜单里面的属
性一栏去掉,那么你就在NavigatorActionGroup类里面propertyDialogAction对象相关代码都删掉就可以了。
这里需要说明一下,MainActionGroup类管理的是Action group,就是说一组action要不你都要要么都不要,
但是假设有人想在open组里面把openwith action拿掉怎么办呢?这时,你就要在你的NavigatorActionGroup
里面使用自己的openAction类了,这个类写起来也很简单,就是仿照openaction类做,然后把你不要的action
对象及相应的代码去掉就可以了,原理和我们重新写MainActionGroup一样。
- 使用eclipse自带的Navigator
- eclipse自带的功能树 Common Navigator Framework
- org.eclipse.ui.navigator.linkHelper的使用
- 使用 eclipse 自带的 j2ee 功能发布应用注意事项
- 使用eclipse打开android_sdk自带的例子
- 使用Eclipse自带的Axis1插件生成WSDL文件
- 使用Eclipse自带的git上传项目
- 使用eclipse自带的工具访问webService
- Eclipse开发linux -- 使用系统自带的动态库
- 不使用eclipse自带maven的配置问题
- eclipse中使用自带git的常用操作
- 如何使用Eclipse自带的工具建立数据库连接
- Eclipse打包(导出)jar文件攻略(一)--使用Eclipse自带的导出功能
- navigator对象的使用
- 组件Navigator的使用
- Eclipse自带Ant的问题
- android自带的APP导入eclipse
- rcp嵌入Eclipse自带的console
- Mac OS X 10.6下搭建J2ME及Subclipse开发环境全过程
- 对CSDN的认识
- C语言中几#if,#if defined ,#ifdef,extern的用法描述
- 每天按压10分钟耳穴有助提高脏腑功能
- ORACLE Group by 总结
- 使用eclipse自带的Navigator
- OSGi-Based Smart Home Architecture for Heterogeneous Network-20090924
- mysql命令集锦
- 某个类输出日志到某个log文件配置
- add the disk in the linux
- 如何让老板放心,杂烩
- Service and Service Composition
- 动态Web表格
- 博客