本文主要是介绍RCP项目_动态打开View,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
public class ActionManager {
/** 打开视图操作 */
public static IWorkbenchAction createShowViewAction(
IWorkbenchWindow window, String viewId) {
if (window == null) {
throw new IllegalArgumentException();
}
/** 获得plugin.xml文件中配置的视图信息 */
IViewDescriptor desc = window.getWorkbench().getViewRegistry()
.find(viewId);
IWorkbenchAction action = new ShowViewAction(window, desc);
return action;
}
}
public class ShowViewAction extends Action implements IWorkbenchAction {
private IWorkbenchWindow workbenchWindow;
private IViewDescriptor desc;
public ShowViewAction(IWorkbenchWindow window, IViewDescriptor desc) {
super("");
/** 获得视图的名称 */
String label = desc.getLabel();
/** 设置操作的名称 */
setText(label);
/** 设置操作的图标为视图的图标 */
setImageDescriptor(desc.getImageDescriptor());
/** 设置操作的提示文本 */
setToolTipText(label);
setId("ShowView" + desc.getId());
this.workbenchWindow = window;
this.desc = desc;
}
public void run() {
/** 获得当前工作区及获得工作页面 */
IWorkbenchPage page = workbenchWindow.getActivePage();
/** 如果页面不为null */
if (page != null) {
try {
/** 显示视图 */
page.showView(desc.getId());
} catch (PartInitException e) {
ErrorDialog.openError(workbenchWindow.getShell(), "打开视图错误!", e.getMessage(), e.getStatus());
}
}
}
public void dispose() {
workbenchWindow = null;
}
}
这篇关于RCP项目_动态打开View的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!