我需要自定义我的RCP应用程序和透视图的使用。特别是,我想提供一个自定义菜单项,让用户保存当前视角,但 WITHOUT 显示内置对话框:
所以我不想使用默认的eclipse方式注册“Save Perspective”Action并将其放入菜单中。即,我不想要这样做:
@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,那么我需要做些什么才能保存当前的透视图?
答案 0 :(得分:0)
这很简单。在自定义操作中,我执行以下操作以保存透视图:
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