在一般的RCP应用中,经常要在Eclipse RCP的工作台界面出现前,弹出自己的对话框,例如登陆校验框。一般的做法是在Application.run(Object args)中,在构造工作台之前启动自己的对话框,这样做的坏处就是RCP的工作台没有启动,与工作台相关的数据,参数没有被初始化。如果在对话框中用到这些数据,就会出现问题。
以下是eclipse RCP 工作台启动和退出时的方法调用顺序:
启动顺序
1 : WorkbenchAdvisor.preStartup
2 : WorkbenchAdvisor.openWindows
3 : WorkbenchAdvisor.createWorkbenchWindowAdvisor
4 : WorkbenchWindowAdvisor.preWindowOpen
5 : WorkbenchWindowAdvisor.createActionBarAdvisor
6 : WorkbenchWindowAdvisor.postWindowCreate
7 : WorkbenchWindowAdvisor.postWindowOpen
8 : WorkbenchAdvisor.postStartup
关闭顺序
9 : WorkbenchWindowAdvisor.preWindowShellClose
10 : WorkbenchAdvisor.preShutdown
11 : WorkbenchWindowAdvisor.postWindowClose
12 : WorkbenchAdvisor.postShutdown
在关闭工作台的时候,如果是点击“退出”菜单,而不是点击右上角的"X" , 则不会执行 步骤 9。
重写WorkbenchWindowAdvisor.public void postWindowCreate(), 该方法定义了在整个Window被创建好,但是还没有打开前执行的操作,要打开的对话框放在这里是最合适的。
问题是要自己关闭splash,执行Platform.endSplash();。
几天以后的补充: 以上的用法在实际中会碰到一些小麻烦,需要你发挥你的聪明才智变通一下.具体做法不再赘述.反正很简单.