在实现了IWorkbenchWindowActionDelegate接口的类中:
private IWorkbenchWindow window;

public void init(IWorkbenchWindow window) {
this.window = window;
}
public void run(IAction action) {
Shell parentShell = window.getShell();
MyDialog dialog = new MyDialog(parentShell,
);
etc 
}

在实现了IObjectActionDelegate 接口的类中:
private IWorkbenchPart targetPart;

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

public void run(IAction action) {
IWorkbenchPartSite site = targetPart.getSite();
MyDialog dialog = new MyDialog(site,
);
etc 
}

IViewPart 或者IEditorPart :
IShellProvider shellProvider = viewOrEditor.getSite();
PlatformUI:
Shell parentShell =
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
Display :
Shell parentShell = Display.getDefault().getActiveShell();
以上各种方法对于获取其它的一些rcp中的重要对象也都有借鉴意义。
private IWorkbenchWindow window;
public void init(IWorkbenchWindow window) {
this.window = window;
}
public void run(IAction action) {
Shell parentShell = window.getShell();
MyDialog dialog = new MyDialog(parentShell,
);
etc 
}

private IWorkbenchPart targetPart;
public void setActivePart(IAction action, IWorkbenchPart targetPart)
{
this.targetPart = targetPart;
}
public void run(IAction action) {
IWorkbenchPartSite site = targetPart.getSite();
MyDialog dialog = new MyDialog(site,
);
etc 
}

IShellProvider shellProvider = viewOrEditor.getSite();
Shell parentShell =
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();Display :
Shell parentShell = Display.getDefault().getActiveShell();以上各种方法对于获取其它的一些rcp中的重要对象也都有借鉴意义。
本文介绍了在Eclipse RCP应用中通过不同方式调用对话框的方法,包括实现IWorkbenchWindowActionDelegate和IObjectActionDelegate接口时如何初始化和运行对话框,以及从IViewPart、IEditorPart、PlatformUI和Display获取Shell对象来打开对话框的具体步骤。


1048

被折叠的 条评论
为什么被折叠?



