如果我右键单击并分离视图,modelService.getActivePerspective(window)则开始返回 null。这意味着重置透视图无法正常工作。如果视图未分离,则它可以正常工作。我在想,当一个新窗口打开时,它正在传递一个不包含透视图的不同窗口。例子public class ResetPerspectiveHandler { @Execute public static void resetPerspective(final MApplication app, final EPartService partService, final EModelService modelService, final MWindow window) { // Prints null System.out.println(modelService.getActivePerspective(window)); PerspectiveSnippetsCopier.resetPerspective(modelService, partService, app, window, modelService.getActivePerspective(window).getElementId()); }}是什么原因造成的?
1 回答
一只斗牛犬
TA贡献1784条经验 获得超2个赞
的代码getActivePerspective是:
public MPerspective getActivePerspective(MWindow window) {
List<MPerspectiveStack> pStacks = findElements(window, null, MPerspectiveStack.class);
if (pStacks.size() == 1) {
MPerspective perspective = pStacks.get(0).getSelectedElement();
return perspective;
}
return null;
}
所以它希望在给定的窗口中找到一个MPerspectiveStack,大概是分离的窗口没有这个。
您可以尝试在应用程序中查找主窗口,而不是使用当前窗口。
MWindow mainWindow = (MWindow)modelService.find("main window id", app);
添加回答
举报
0/150
提交
取消