關(guān)于RCP程序開發(fā),當(dāng)寫第一個(gè)Demo時(shí)的要點(diǎn).記錄下來.寫得粗糙,僅供自己參考
1. Action 1> ApplicationActionBarAdvisor類的makeActions方法用來初始化Action,可以是內(nèi)部定義的Action,也可以是自己從Action類繼承的自定義Action.
2>從Action類繼承的Action重寫run方法,這是Action執(zhí)行時(shí)候運(yùn)行的代碼.
3>內(nèi)置Action 都實(shí)現(xiàn)了IWorkbenchAction,用ActionFactory.QUIT.create獲得Action.
3>相比Delphi,JFace的Action類更簡(jiǎn)單,把他放在menubarManager上,他就變成了一個(gè)菜單,把他放在 ToolbarManager上就變成了工具圖標(biāo).delphi里面一個(gè)菜單是一個(gè)menuItem + Action組成的.工具欄是Button + Action組成的.
2. 菜單: 1>menubarManager 相當(dāng)于有主菜單,如文件,編輯等菜單項(xiàng).menubarManger.add(menubarManager).這樣產(chǎn)生二級(jí)菜單.
2>menubarManager.add(Action).這樣就添加了一個(gè)子菜單.
3>fillMenuBar(IMenuManager menuBar) 方法傳進(jìn)來的menuBar就是最頂端的菜單面板.相當(dāng)于delphi里面添加了一個(gè)XPMenu控件,會(huì)在form上增加一條菜單面板.menuBar.add(menubarManager),這樣添加了一級(jí)菜單.
3. 工具欄
1>重寫fillCoolBar(ICoolBarManager coolBar) 可以添加工具欄.
2>創(chuàng)建一個(gè)ToolbarManager實(shí)例.就是一個(gè)工具欄.可以創(chuàng)建多個(gè).
3>ToolbarManager.add(Action).這樣就是添加了一個(gè)工具圖標(biāo).
4>coolBar.add(ToolbarManager),就是在界面上添加一塊工具欄,可以增加多塊工具欄.
4.View社圖 1>可以從擴(kuò)展點(diǎn)配置一個(gè)Action: 從plugin.xml的Extension標(biāo)簽,點(diǎn)add,找出views
2>也可以從ViewPart繼承一個(gè)類.createPartControl方法設(shè)置一些初始化工作.
3>View可以理解為Delphi的childwindow,子窗口,可以放各種控件,可以關(guān)閉,最大化,最小化.
4>View的顯示是依賴一個(gè)透視圖的.透視圖可以理解為不同的View或Editor的組合,就叫透視圖.
5>重寫Perspective默認(rèn)透視圖createInitialLayout方法,并用layout.addView添加并顯示一個(gè)視圖.當(dāng)加載默認(rèn)視圖時(shí)會(huì)加載該View窗口.
5.Editor編輯器 1>Editor類實(shí)現(xiàn)了ISaveablePart接口.并綁定了內(nèi)置的Save Action,SaveAsAction
2>當(dāng)點(diǎn)擊菜單中的保存 Action時(shí)會(huì)自動(dòng)調(diào)用doSave方法.只要重寫doSave方法保存當(dāng)前的文件即可實(shí)現(xiàn)保存.
3>Editor依賴了一個(gè)EditorInput類,EditorInput類我理解為像Struts中的ActionForm類一樣,用來傳遞參數(shù)給Editor.
4>如果不是需求這種集成編輯器的功能,一般用View可以滿足,但是如像QQ聊天這樣的編輯框的時(shí)候,用Editor開發(fā)應(yīng)該是一個(gè)不錯(cuò)的選擇.delphi里面像發(fā)送消息程序,采用了一個(gè)HtmlEdit控件才解決了這個(gè)問題.
5>Editor窗口可以用window.getActivePage.openEditor(input, TxtEditor.ID)打開.