打开/激活视图时关闭视图

时间:2015-12-02 13:57:43

标签: eclipse-plugin eclipse-rcp

我正试图从我的插件中关闭一个视图。要求如下。

  1. 用户将选择我的插件提供的Menu1(比如说开始)。
  2. 现在,如果用户尝试选择特定视图,则在用户选择另一个菜单之前不应该允许它,让我们说停止。
  3. 我在谷歌搜索并发现,我可以使用activePage.hideView()方法关闭视图。由于我没有完全删除视图的选项,我创建了一个PartListener,并且在partActivated()方法中,我调用了hideview方法。

    通过遵循这种方法,视图将被关闭,但是运行时异常表示"在激活视图之前阻止org.eclipse.ui.ProjectExplorer的递归激活... xyz ....&# 34;(我正在关闭)。

    当用户打开/激活视图时,请帮助我采取正确的方法来关闭视图。

1 个答案:

答案 0 :(得分:0)

尝试使用hideView延迟Display.asyncExec来电。在partActivated方法中使用:

Display.getDefault().asyncExec(new Runnable()
 {
   @Override
   public void run()
   {
      ... call hideView here
   }
 });

asyncExec代码运行之后才会运行Runnable partActivated,这应该会停止递归激活警告。