我在单击树节点时从视图打开编辑器。现在,当编辑器加载和控件显示给用户时,我想基于编辑器上存在的某些值向用户显示警告消息对话框。
我尝试将警告对话框放在编辑器的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/