e4 RCP:如何判断零件是否正在显示

时间:2014-05-21 09:53:31

标签: java eclipse rcp e4

我正在编写一个RCP应用程序,其应用程序模型可以简化如下:

==================================================
= lpart                ||  rpart1 | rpart2       =
= -------------------- || ---------------------- =
=     <a table>        ||  <some sfuff about     =
=                      ||   the selected item>   =
==================================================
  1. 窗口分为两部分:左和右
  2. 左侧PS包含一个部分,而该部分仅包含一个表
  3. 正确的PS包含两部分,每部分都会显示表格中所选项目的一些细节

  4. 问题:

    1. 似乎Eclipse正懒惰地初始化我的部分实现类。如果在单击选项卡之前在rpart2上调用MPart.getObject(),则返回null。我可以让Eclipse在启动时初始化我的所有部分实现类。
    2. 如何判断rpart1和rpart2中的哪一个正在显示。我希望避免在表格选择发生变化时为两个部分加载数据,毕竟只有其中一个部分真正显示。

    3. 我想要实现的目标:

      1. 每当选择一个项目时,rpart1和rpart2都会得到通知并记住选择(项目ID或类似的项目)。如果rpart2被懒惰地初始化,那将是不可能的。
      2. 只有当前显示的部分才能获取所需的详细信息。如果某个部分无法判断它是否正在显示,那将是不可能的。
      3. 当选择其他部分时,它将根据记忆选择获取并显示其数据。嗯,这是我知道如何做的唯一部分。
      4. 任何帮助都会非常感激!非常感谢!

2 个答案:

答案 0 :(得分:3)

您可以使用EPartService addPartListener方法添加一个通知所有部分激活(和其他)事件的侦听器。

答案 1 :(得分:1)

我认为EPartService.isPartVisible(MPart)(而非MPart.isVisible())解决了您的第一个问题。