Eclipse E4从活动的角度关闭零件

Eclipse E4从活动的角度关闭零件,eclipse,eclipse-rcp,rcp,e4,Eclipse,Eclipse Rcp,Rcp,E4,我有一个e4应用程序,它有两个方面: 操作 配置->包含(除其他外)打开配置的部件堆栈。零件中的每个配置 加载新模型时,将关闭所有配置部件。如果在配置透视图处于活动状态时加载新模型,则此操作可以正常工作 但是,如果我在配置透视图中打开一些配置。切换到Operations透视图并加载新模型 我可以在日志中看到,关闭部件的代码被调用,一切似乎都正常。然而,当我切换回配置透视图时,零件仍然是可见的 有谁能告诉我,无论哪一个是活动透视图,如何确保零件接近?我找到了一个“解决方法”来解决我的问题 我抛出了

我有一个e4应用程序,它有两个方面:

  • 操作
  • 配置->包含(除其他外)打开配置的部件堆栈。零件中的每个配置
  • 加载新模型时,将关闭所有配置部件。如果在配置透视图处于活动状态时加载新模型,则此操作可以正常工作

    但是,如果我在配置透视图中打开一些配置。切换到Operations透视图并加载新模型

    我可以在日志中看到,关闭部件的代码被调用,一切似乎都正常。然而,当我切换回配置透视图时,零件仍然是可见的

    有谁能告诉我,无论哪一个是活动透视图,如何确保零件接近?我找到了一个“解决方法”来解决我的问题

    我抛出了一个事件来检测模型负载,如下所示,并使用它“关闭”/“隐藏零件”:

    @Inject@可选
    void modelLoadedHandler(@UIEventTopic(stuctants.UI\u TOPIC\u CONFIG\u LOADED)对象nothing){
    viewer.setInput(sleConfigService);
    //关闭打开的配置部件
    MPartStack=(MPartStack)模型服务
    .find(stuctants.PART_堆栈_ID_配置_视图,
    应用程序);
    List parts=newarraylist(stack.getChildren());
    MPart-MPart;
    用于(MStackElement:零件){
    mpart=(mpart)元素;
    错误(“删除部分{}可见{}”,mpart.getElementId(),mpart.isVisible());
    partService.hidePart(mpart,true);
    }
    //添加此选项后,无论使用哪个透视图,它都可以正常工作
    //活跃的。
    stack.getChildren().clear();
    }
    
    添加
    stack.getChildren().clear()成功了。我不能百分之百确定这是否是正确的处理方法,因为我认为当我移除一个零件时,
    PartStack
    应该自动清空