在action中获得shell

xiaoxiao2022-06-12  34

今天要用到点右键的时候弹出一个向导窗口(WizardDialog),向导窗口的构造函数里有需要传个Shell,而在action里我不知道怎么得到Shell,所以小小研究一下.

先把我的扩展点贴出来

   <extension point="org.eclipse.ui.popupMenus">       <objectContribution          id="com.xyz.C3"          objectClass="org.eclipse.core.resources.IFile"          nameFilter="struts-config-*">          <action            id="com.xyz.runXYZ"             label="properties tool"             class="chinese2pingyin.actions.TransformAction">          </action>       </objectContribution>    </extension>

所以我的TransformAction需要实现org.eclipse.ui.IObjectActionDelegate接口,所以需要实现setActivePart(IAction action, IWorkbenchPart targetPart)方法

这里我在TransformAction定义一个成员变量

private IWorkbenchPart fWorkbenchPart= null;

在setActivePart方法里

 public void setActivePart(IAction action, IWorkbenchPart targetPart) {  fWorkbenchPart = targetPart; }

这时候就可以在run方法里

final IWorkbenchWindow window= fWorkbenchPart.getSite().getWorkbenchWindow();

Shell shell = window.getShell();

这样就得到Shell 了!

没有技术含量,但希望能为和我有一样问题的人节省点时间

转载请注明原文地址: https://www.6miu.com/read-4933184.html

最新回复(0)