如果我右鍵單擊并分離視圖,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
提交
取消