【发布时间】:2014-12-10 15:58:22
【问题描述】:
我想克隆一个透视图并保存克隆的透视图。但是,对 PerspectiveRegistry.clonePerspective(...) 的调用返回 null,我想不出我的参数值可能有什么问题。
public void savePerspectiveAs(String label) {
IWorkbenchPage page = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage();
IPerspectiveDescriptor perspectiveDescriptor = perspectiveRegistry
.findPerspectiveWithLabel(label);
// if the perspective doesn't exist, create a new one
// by cloning the current perspective
if (perspectiveDescriptor == null) {
IPerspectiveDescriptor currentPerspectiveDescriptor =
perspectiveRegistry.findPerspectiveWithId(currentPerspective);
// after this line, perspectiveDescriptor is still null
perspectiveDescriptor = perspectiveRegistry
.clonePerspective(currentPerspective + "."
+ label.replaceAll(" ", "_"), label,
currentPerspectiveDescriptor);
// hence I get a NullPointerException here...
connectedPerspectives.add(perspectiveDescriptor.getId());
}
page.savePerspectiveAs(perspectiveDescriptor);
}
所有其他值似乎都很好。 currentPerspectiveDescriptor 是一个有效对象,perspectiveRegistry 也是如此。
label 类似于"Connected Perspective 2"。它还不存在,我创建的透视 ID 也不存在。
有什么想法吗? clonePerspective(...) 返回 null 会出现什么问题?
【问题讨论】:
标签: java eclipse eclipse-rcp perspective