切换透视图后 MPart 不是用户

MPart is not user after switch perspective

我有一个关于在 E4 中切换视角的问题。这两个视角共享同一个 MPart。切换到新视角后,将使用新的 MPart。切换回原始视角后,仍将使用第二个 MPart 而不是第一个。

在图片中您可以找到应用程序结构,并且两个 Perspectives 上都有 Outline 屏幕。 打开透视图一时,大纲适用于该透视图。然后,如果我们切换到透视图二(具有不同的其他屏幕),第二个大纲将被激活并正常工作。当切换回第一个视角时,第二个 Outline 仍将处于活动状态,第一个 Outline 将不会响应任何请求。

切换到透视图后,我激活了所有 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));
        }
      }
    }

如何激活第一个 Outline,以便它从第一个角度响应新请求?

创建了共享大纲部分并使用占位符重复使用大纲。使用此解决方案,我更改了透视切换实现。这样如果用户回到第一个视角,那么当他切换到第二个时,大纲的数据是相同的。