第一步:插件类RCPPlugin
系统运行后首先在MANISFEST.MF文件中找到Bundle-Activator所对应的插件类,通过该类的静态方法获得插件对象的引用,然后获得插件的各种信息,包括插件所对应的Bundle文件信息、log日志对象和工作台对象等。例如:获取插件在MANISFEST.MF定义的标识符。
RCPPlugin.getDefault().getBundle().getSymbolicName();
第二步:应用程序Application
创建了插件类后,程序会自动查找plugin.xml文件,是否有对应的应用程序扩展点org.eclipse.runtime.applications。如果有,再找到该运行程序所对应的class,然后创建对象。在该类中首先创建了Display对象,然后调用PlatformUI的静态方法createAndRunWorkbench创建了ApplicationWorkbenchAdvisor对象。ApplicationWorkbenchAdvisor对象表示的是工作台对象,用于创建工作台对象。
第三步:工作台类ApplicationWorkbenchAdvisor
ApplicationWorkbenchAdvisor类继承自WorkbenchAdvisor类。RCP程序启动后必须指定一个默认的透视图,所以要实现getInitialWindowPerspectiveId方法,该方法返回一个透视图的ID。
覆盖父类中的方法createWorkbenchWindowAdvisor中将创建一个工作台的窗口类。
第四步:工作台窗口类ApplicationWorkbenchWindowAdvisor
该类创建时首先对工作台进行设置。是在preWindowOpen方法中实现的。该方法会在窗口打开之前调用。另外也可以通过覆盖父类中的方法来进行窗口打开之前的配置工作和窗口关闭的善后处理工作。
第五步:操作类ApplicationActionBarAdvisor
创建窗口时,会创建菜单栏和工具栏,此时创建的是ApplicationActionBarAdvisor对象。在该类中可以添加各种操作项来创建菜单栏、工具栏和状态栏等。
第六步:透视图类Perspective
最后,在创建工作台对象时,要指定一个默认的透视图对象。要实现一个透视图类就要实现IPespectiveFactory接口。
------摘自《Eclipse SWT/JFace核心应用》