代码之家  ›  专栏  ›  技术社区  ›  Real Red.

EclipseRCP:如何在编辑器加载后显示消息对话框?

  •  2
  • Real Red.  · 技术社区  · 17 年前

    我正在从一个视图打开一个编辑器,单击一个树节点。现在,当编辑器加载并向用户显示控件时,我希望根据编辑器上的某些值向用户显示一个警告消息对话框。

    我尝试将警告对话框放在编辑器的CreatePartControl方法的末尾。根据所需功能,双击TreeNode时会出现对话框。但问题是,当对话框出现时,编辑器上的控件还不可见。只有当我关闭对话框时,才会显示编辑器控件。

    我希望事情反过来发生。也就是说,编辑器控制首先显示,然后应显示警告对话框。为了达到这个效果,我应该做什么改变?

    1 回复  |  直到 17 年前
        1
  •  8
  •   VonC    17 年前

    你可以这么说 MessageDialog 以异步方式,让编辑器有机会自行完成,如中所建议的 this message .

    在asyncExec()中显示警告对话框可确保编辑器的初始化都以正确的顺序进行。

    因此,类似(未测试)此代码的代码可能会起到以下作用:

    getSite().getShell().getDisplay().asyncExec
        (new Runnable() {
            public void run() {
                MessageDialog.openWarning(getSite().getShell(),"wrong","no)
            }
        });
    }
    

    这里还有其他一些例子 MapEditor 类,其中通过等待结果的AsyncExec显示消息对话框:

    PlatformGIS.syncInDisplayThread