关于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)打开.