[英]Eclipse RCP: save a perspective programmatically
我需要自定义RCP应用程序和透视图的用法。 特别是,我想提供一个自定义菜单项,该菜单项可让用户保存当前透视图,但不显示内置对话框:
因此,我不想使用默认的月食方式来注册“保存透视图”操作并将其放入菜单中。 也就是说,我不希望这样做:
@Override
protected void makeActions(IWorkbenchWindow window)
{
// ...
register(ActionFactory.SAVE_PERSPECTIVE.create(window));
// ...
}
@Override
protected void fillMenuBar(IMenuManager menuBar)
{
// ...
windowMenu.add(getAction(ActionFactory.SAVE_PERSPECTIVE.getId()));
// ...
}
因此,如果我编写了一个自定义Action,那么在那需要做什么来保存当前的透视图?
这很简单。 在自定义动作中,我执行以下操作来保存透视图:
IWorkbenchPage page = window.getActivePage();
IPerspectiveRegistry perspectiveRegistry = window.getWorkbench()
.getPerspectiveRegistry();
IPerspectiveDescriptor personalPerspectiveDescriptor = perspectiveRegistry
.findPerspectiveWithId(perspectiveId);
if (page != null && personalPerspectiveDescriptor != null) {
// ... other stuff like different confirm dialogs
page.savePerspectiveAs(personalPerspectiveDescriptor);
}
一个很好的示例,说明如何使用透视图来让用户自定义其布局而不显示太多内置透视图功能:
http://www.subshell.com/en/subshell/blog/article-Eclipse-RCP-Change-Your-Perspective100.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.