日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
深入淺出EclipseRCP(1):HelloRCP

第一個RCP程序

成都創(chuàng)新互聯成都網站建設按需設計網站,是成都網站營銷推廣公司,為展覽展示提供網站建設服務,有成熟的網站定制合作流程,提供網站定制設計服務:原型圖制作、網站創(chuàng)意設計、前端HTML5制作、后臺程序開發(fā)等。成都網站設計熱線:028-86922220

打開Eclipse,新建一個Plug-in Project,點擊Next。在Project name文本框中輸入項目名稱net.kirin.rcp.hello,如下圖所示。

點擊Next,如下圖所示,在“Would you like to create a rich client application?”后面選中Yes。其余均可保留默認值。

點擊Next,選擇Hello RCP模板。

點擊Next,打開如下對話框,各項均可保留默認值。

點擊Finish,將創(chuàng)建結構如下的項目。

雙擊MANIFEST.MF文件,將打開一個名為Overview的界面,點擊Launch an Eclipse application,

結果如下圖所示。

這就是我們的第一個RCP程序。當然,我們沒有寫一行代碼,完全是Hello RCP模板自動為我們創(chuàng)建的。

代碼解析

可以看到,RCP模板自動為我們創(chuàng)建了Application.java、ApplicationActionBarAdvisor.java、ApplicationWorkbenchAdvisor.java、ApplicationWorkbenchWindowAdvisor.java、Perspective.java這5個類。下面我們對這5個類進行逐一分析。

Application類

在普通的Java程序中,總有一個main()方法作為應用程序的入口點。而RCP程序的入口點則是Application類。打開Application.java文件,可以看到該類實現了IPlatformRunnable接口,入口方法如下所示:

  
  
  
  
public Object run(Object args) throws Exception {
    Display display = PlatformUI.createDisplay();
    try { int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor()); if (returnCode == PlatformUI.RETURN_RESTART) { return IPlatformRunnable.EXIT_RESTART; } return IPlatformRunnable.EXIT_OK; } finally { display.dispose(); } }

run()方法為IPlatformRunnable接口所定義的方法,在RCP程序啟動時,會首先執(zhí)行該方法。Application首先創(chuàng)建一個Display對象, 然后調用PlatformUI.createAndRunWorkbench()方法創(chuàng)建并啟動工作臺,這將打開應用程序主窗口,并使該窗口處于持續(xù)打開狀態(tài)。應用程序開始處理用戶的鼠標單擊、鼠標移動、按鍵等各種事件,直到用戶關閉程序退出,這就是所謂的事件循環(huán)。當然,在關閉之前,必須用display.dispose()銷毀Display對象以釋放資源。

ApplicationWorkbenchAdvisor類

在PlatformUI.createAndRunWorkbench()方法中,還傳入了一個新建的ApplicationWorkbenchAdvisor對象。它類負責應用程序生命周期管理,它繼承自WorkbenchAdvisor類。開發(fā)人員可以在該類中實現程序啟動或者關閉時的某種處理。該類的具體實現只是給用戶一個初始的視圖界面而已,還需要配合WorkbenchWindowAdvisor、ActionBarAdvisor才能構成一個較為完整的用戶界面。

打開ApplicationWorkbenchAdvisor.java文件,代碼如下:

  
  
  
  
public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {

    private static final String PERSPECTIVE_ID = "net.kirin.rcp.hello.perspective"; public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) { return new ApplicationWorkbenchWindowAdvisor(configurer); } public String getInitialWindowPerspectiveId() { return PERSPECTIVE_ID; } }

createWorkbenchWindowAdvisor()方法初始化在主界面顯示的透視圖,并返回ApplicationWorkbenchWindowAdvisor對象。

ApplicationWorkbenchAdvisor還包含一些比較重要的方法:

  • initialize:最先調用。在窗口打開之前調用,可以用來處理初始化配置工作。
  • preStartup:initialize之后、第一個窗口打開之前調用,可以用來處理臨時或者可選處理工作。
  • postStartup:第一個窗口打開之后但啟動事件循環(huán)之前調用,可以用來進行那些需要自動處理的工作,例如彈出一個提示窗口。
  • preShutdown:事件循環(huán)結束之后但窗口關閉之前調用,可以用來進行保存數據、關閉數據庫服務器等處理工作。
  • postShutdown:窗口關閉之后調用,可以用來進行保存應用程序狀態(tài)、清除initialize創(chuàng)建的對象等處理工作。

ApplicationWorkbenchWindowAdvisor類

在ApplicationWorkbenchAdvisor類中創(chuàng)建了一個ApplicationWorkbenchWindowAdvisor對象。它主要負責窗口生命周期的管理,例如狀態(tài)欄、工具欄、菜單、窗口標題、窗口大小和各種控件等等,也可以處理窗口的各種事件例程。其主要代碼如下:

  
  
  
  
public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {

    public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) { super(configurer); } public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) { return new ApplicationActionBarAdvisor(configurer); } public void preWindowOpen() { IWorkbenchWindowConfigurer configurer = getWindowConfigurer(); configurer.setInitialSize(new Point(400, 300)); configurer.setShowCoolBar(false); configurer.setShowStatusLine(false); configurer.setTitle("Hello RCP"); } }

preWindowOpen()方法在窗口控件創(chuàng)建之前調用,用來配置窗口,如設置窗口大小、工具欄、狀態(tài)欄和標題等。createActionBarAdvisor創(chuàng)建了一個ApplicationActionBarAdvisor對象。

其它比較重要的方法還包括:

  • postWindowRestore:當窗口根據上一次的保存狀態(tài)恢復創(chuàng)建之后調用,可以用來調整調整窗口恢復狀態(tài)。
  • postWindowCreate:窗口創(chuàng)建之后調用,可以用于調整窗口。
  • postWindowOpen:窗口已經打開之后調用,可以用來注冊窗口監(jiān)聽,例如在此方法中實現系統(tǒng)托盤。

ApplicationActionBarAdvisor類

ApplicationActionBarAdvisor主要負責管理窗口的菜單欄、狀態(tài)欄、工具欄的外觀和行為。其主要代碼如下:

  
  
  
  
public class ApplicationActionBarAdvisor extends ActionBarAdvisor {

    public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) { super(configurer); } protected void makeActions(IWorkbenchWindow window) { } protected void fillMenuBar(IMenuManager menuBar) { } }

makeActions()方法用來注冊菜單或工具欄的動作。fillMenuBar()方法用來添加菜單欄。

其它比較重要的方法還包括:

  • fillCoolBar:添加工具欄
  • fillStatusLine:添加狀態(tài)欄

Perspective類

Perspective類主要負責界面布局的安排,其代碼如下:

  
  
  
  
public class Perspective implements IPerspectiveFactory {

    public void createInitialLayout(IPageLayout layout) { } } 

createInitialLayout()方法通常用于創(chuàng)建初始的界面布局。

小結

本篇作為《深入淺出Eclipse RCP》系列的開篇,介紹了如何使用Hello RCP模板創(chuàng)建最簡單的RCP程序,并對自動生成的5個類進行了解析。如果您是RCP的初學者,也許會對本文中出現的一些概念改到困惑。沒有關系,我將在接下來的隨筆中介紹RPC的基本架構以及Workbench、Action、Perspective等概念。


網站名稱:深入淺出EclipseRCP(1):HelloRCP
網頁路徑:http://www.dlmjj.cn/article/cdpjcco.html