我在单击树节点时从视图打开编辑器。现在,当编辑器加载和控件显示给用户时,我想基于编辑器上存在的某些值向用户显示警告消息对话框。

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

我希望它能反过来发生。即,编辑器控件将首先显示,然后出现警告对话框。我应该做些什么改变才能达到这种效果?

最佳答案

您可能希望以异步方式调用该MessageDialog,以使编辑器有机会完成自身,如this message中所建议。


在可运行的asyncExec()中显示警告对话框将确保编辑器的初始化全部按照正确的顺序进行。


因此,类似(未经测试)的这段代码可能会达到目的:

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


MapEditor类中的其他一些示例,其中通过asyncExec显示MessageDialog并等待结果:

PlatformGIS.syncInDisplayThread

关于eclipse-plugin - Eclipse RCP:编辑器加载后如何显示消息对话框?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/629012/

10-16 09:15