您的位置:首页 > 其它

RCP项目_动态打开View

2013-03-07 14:29 127 查看
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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐