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