Posted on 2009-11-25 15:57
沙漠中的魚 閱讀(421)
評論(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接口