为什么要获取active shell?
创建其它dialog或window,需要传出shell,以便构成modal模式。
如何获取?
1 | Shell shell = Display.getDefault().getActiveShell(); |
因为RCP程序运行在Display.getDefault()上,所以下面的方法返回的active shell是同一个东西,只是比较麻烦。
1 2 | PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); PlatformUI.getWorkbench().getDisplay().getActiveShell(); |
一般程序只有一个Display,就是Display.getDefault(),所以在UI线程上,下面方法也可以返回active shell。
1 | Display.getCurrent().getActiveShell(); |