Posted on 2009-11-25 15:57
沙漠中的鱼 阅读(419)
评论(0) 编辑 收藏 所属分类:
RCP开发
Application.java 整个程序的入口点,在程序运行时,会选执行run方法,将创建用户界面的工作交给ApplicationWorkbenchAdvisor类
ApplicationWorkbenchAdvisor.java 指定默认的透视图,把创建窗口的开作交给ApplicationWorkbenchWindowAdvisor类
ApplicationWorkbenchWindowAdvisor.java,可能重载它的preWindowCreate,postWindowCreate,preWindowOpen,postWindowOpen等方法,以便修改窗口的外观
ApplicationActionBarAdvisor.java,可以创建菜单和工具条
添加菜单
添加菜单工具栏第一种方法
makeActions创建action,注册action;regsiter(action)是用来把实例注册到工作台中,当工作台销毁的时候,action也可以被销毁
action需要实现IWorkbenchAction接口
fillMenuBar建菜单,工具条,设置相对应的action;
添加菜单工具栏第二种方法
在plugin.xml中添加配置
<extension
id ="cn.blogjava.youxia.actionset"
name ="我的菜单扩展"
point ="org.eclipse.ui.actionSets">
<actionSet
description ="第一个扩展"
id ="RCP_Start.actionSet1"
label ="RCP_Start.actionSet1"
visible ="true" >
<action class ="cn.blogjava.youxia.actions.Action2"
icon ="icons/alt_window_16.gif"
id ="RCP_Start.action2"
label ="第二个菜单项"
menubarPath ="cn.blogjava.youxia.firstmenu/additions"
style ="push"
toolbarPath ="additions"
tooltip ="第二个菜单项的按钮" />
</actionSet>
</extension>
Action2必须要实现实现org.eclipse.ui.IWorkbenchWindowActionDelegate接口,多定义了一个方法public void selectionChanged(IAction action, ISelection selection),这个方法是必须的,以便工作台窗口在用户选定哪一项资源的时候通知我们的Action类的实例。这个方法是必须的,以便工作台窗口在用户选定哪一项资源时通知我们的action类的实例
添加视图
在File->New->Other->Designer->RCP->ViewPart->Next
Perspective类:这是RCP应用的默认视图,实现了IPerspectiveFactory接口,并且通过org.eclipse.ui.perspectives扩展ClassName属性指定
在Perspective类中createInitialLayout方法中添加如下代码
layout.addView( BrowserView.ID,
IPageLayout.TOP,
IPageLayout.RATIO_MAX,
IPageLayout.ID_EDITOR_AREA );
在plugin.xml中添加如下节点
<extension point="org.eclipse.ui.views">
<view
class="helloworld_rcp.BrowView"
id="BrowView"
name="New ViewPart">
</view>
</extension>
设置隐藏编辑面板
layout.setEditorAreaVisible(false);
Selection Service的整体架构
注册
this.getSite().setSelectionProvider(viewer);
viewer需要实现ISelectProvider接口
监听
this.getSite().getPage().addSelectionListener(this);
this.实现ISelectionListener接口