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

时间:2009-03-10 05:23:46

标签: eclipse-plugin eclipse-rcp

我在点击treenode的视图中打开一个编辑器。现在,当向用户显示编辑器加载和控件时,我想根据编辑器上的某些值向用户显示警告消息对话框。

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

我希望它以相反的方式发生。即编辑器控制首先显示,然后出现警告对话框。我应该做些什么改变才能达到这个效果?

1 个答案:

答案 0 :(得分:8)

您可能希望以异步方式调用 MessageDialog ,让编辑器有机会完成自己,如this message中所述。

  

在asyncExec()runnable中显示你的警告对话框,以确保编辑器的初始化都以正确的顺序发生。

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

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

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

PlatformGIS.syncInDisplayThread