Aimd's Blog

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: :: 订阅 订阅 :: 管理 ::
和上篇内容相似。
目的:创建自己的Navigator,例如去掉过滤器,右键菜单去掉一些功能等个性化界面工作。
步骤:
一,创建自己的视图类
public class NavigatorView extends ResourceNavigator,
这个类会在后面详细介绍,并在RCP的透视图类的createInitialLayout方法中
创建加入,具体代码如下:
layout.addView(NavigatorView.ID, IPageLayout.LEFT, 0.2f, IPageLayout.ID_EDITOR_AREA);


但是如果你这样就运行是会出错的,因为你还没有定义view 的Extensions,具体方法在
Plugin.xml文件的extensions里面新建一个ui.view的扩展,并设置名字和id及class(NavigatorView)
二,制订你的需求--NavigatorView class。
如果你看ResourceNavigator类的代码,你会发现ResourceNavigator的所有action创建都是在
MakeAction里面由一个MainActionGroup类的对象完成的。
所以我们就在NavigatorView里面重载makeActions方法,
并写自己的ActionGroup类--NavigatorActionGroup。
public class NavigatorView extends ResourceNavigator

   
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一样。
posted on 2006-05-15 18:10  Aimd  阅读(1805)  评论(9编辑  收藏  举报