我有一个与在E4中切换视角有关的问题。这两个视角共享相同的MPart。切换到新视角后,将使用新的MPart。在回到原始视角后,仍将使用第二个MPart而不是第一个。
在图像中,您可以找到应用程序结构,并且两个Perspectives都有Outline屏幕。 在打开透视图时,大纲适用于该透视图。然后,如果我们切换到透视图2(具有不同的其他屏幕),则第二个大纲将被激活并且正常工作。切换回第一个视角时,第二个大纲仍然有效,第一个大纲不会响应任何请求。
切换到透视图后,我将所有MPart重新激活:
List<MPart> part = service.findElements(perspective, null, MPart.class, null);
List<MPartStack> mainPartStack = service.findElements(perspective, "partstack.shared", MPartStack.class, null);
if (!mainPartStack.isEmpty()) {
for (int i = part.size() - 1; i >= 0; i--) {
List<MPart> children = service.findElements(mainPartStack.get(0), part.get(i).getElementId(), MPart.class,
null);
if (!children.contains(part.get(i))) {
this.partService.activate(part.get(i));
}
}
}
如何激活第一个大纲,以便从第一个角度响应新请求?
答案 0 :(得分:0)
创建一个共享的Outline部分并使用占位符来重用Outline。通过这个解决方案,我改变了透视切换实现。因此,如果用户回到第一个视角,当他切换到第二个时轮廓的数据是相同的。