eclipseRCP深入浅出(学习总结)2015.08.24

chapter 6 

1、 ApplicationWorkbenchWindowAdvisor中的preWindowOpen()方法可以设置顶级菜单可用:

//设置顶级菜单可用,但不设置可见
    configurer.setShowMenuBar(true);

2、只有给顶级菜单添加选项之后才可见,否则就是空的,显示不出来

3、当创建一个RCP应用框架以后,他就生成了一个ActionBarAdvisor的实现类:ApplicationActionBarAdvisor。它有空的makeActions()和fillMenuBar()方法。makeActions()用来创建每一个action,并把它们的对象保存为ApplicationActionBarAdvisor的成员变量。每一个action都需要注册,这样可以确保当窗口关闭时,这些action随之被删除。

protected void makeActions(IWorkbenchWindow window) {
    exitaAction = ActionFactory.QUIT.create(window);
    register(exitaAction);
    aboutAction = ActionFactory.ABOUT.create(window);
    register(aboutAction);
    }

4、workbench定义了许多常用的action,他们可以在RCP应用中重复使用,而且他们都是ActionFactory的内部类。用的时候只需要实例化它们,他们已经被提前设置好了标准的name、id、icon。

protected void fillMenuBar(IMenuManager menuBar) {
    //&后面的才是要显示的名字  第二个参数是id
    MenuManager hyperbolaMenu = new MenuManager("&Hyperbola111","hyperbola");
    hyperbolaMenu.add(exitaAction);
    MenuManager helpMenu = new MenuManager("&Help111","help");
    helpMenu.add(aboutAction);
    menuBar.add(hyperbolaMenu);
    menuBar.add(helpMenu);
    }

5、menu manager用来保存action和子菜单的路径,通过分组,可以创建action的逻辑结构。menu manager让人不用关心菜单是怎么创建的,只用关心你是以何种逻辑结构来组织和展示action:

protected void fillMenuBar(IMenuManager menuBar) {
    //&后面的才是要显示的名字  第二个参数是id
    MenuManager hyperbolaMenu = new MenuManager("&Hyperbola111","hyperbola");
    hyperbolaMenu.add(exitaAction);
    //构造方法中参数是分组名,就是把子菜单看成分组,
    hyperbolaMenu.add(new GroupMarker("other-actions"));//分组1
    hyperbolaMenu.add(new GroupMarker("another-actions"));//分组2
    hyperbolaMenu.appendToGroup("other-actions", aboutAction);//给分组1添加了一个aboutaction
    hyperbolaMenu.appendToGroup("another-actions", aboutAction);//给分组2添加了一个aboutaction
    MenuManager helpMenu = new MenuManager("&Help111","help");
    helpMenu.add(aboutAction);
    menuBar.add(hyperbolaMenu);
    menuBar.add(helpMenu);
    }

6、例如aboutaction和exitaction是任何时候都可以使用的,他们独立于应用程序,但我们需要创建一些在特定时刻起作用,而在其他状态禁用的action:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值