Plugins 如何在代码中关闭对话框?

Plugins 如何在代码中关闭对话框?,plugins,eclipse-plugin,swt,Plugins,Eclipse Plugin,Swt,因此,我正在制作一个eclipse插件,并通过扩展dialog类创建了自己的对话框 我的对话框基本上用来自服务器的数据填充树视图。有时无法填充数据(因为服务器已关闭),因此我的树视图为空 如果无法连接到服务器,则会出现另一个对话框报告错误。 我的问题是,当我在错误对话框中按ok时,我想关闭初始对话框 我一直没能找到一个好方法来做这件事。 我已尝试将setBlockOnOpen设置为false。 我试过打电话给你。 他们两个都没有工作。 我在createDialogArea函数中调用了它们 关于如

因此,我正在制作一个eclipse插件,并通过扩展dialog类创建了自己的对话框

我的对话框基本上用来自服务器的数据填充树视图。有时无法填充数据(因为服务器已关闭),因此我的树视图为空

如果无法连接到服务器,则会出现另一个对话框报告错误。 我的问题是,当我在错误对话框中按ok时,我想关闭初始对话框

我一直没能找到一个好方法来做这件事。 我已尝试将setBlockOnOpen设置为false。 我试过打电话给你。 他们两个都没有工作。 我在createDialogArea函数中调用了它们


关于如何使其工作,您有什么想法吗?

您需要在对话框创建完成后执行
关闭
调用。您可以使用以下代码执行此操作:

parent.getDisplay().asyncExec(新的Runnable())
{
@凌驾
公开募捐
{
close();
}
});

createDialogArea
方法中。但是,该对话框可能会短暂出现。最好在创建对话框之前进行检查。

基本上是用户取消对话框。您需要调用
cancelPressed()
,这样,如果您有任何依赖于
returnCode的代码,它将是一致的处理方式

if(noDataLoaded){
    Display.getDefault().asyncExec(new Runnable() {

     public void run() {
        cancelPressed():
    }
    });
}

你能发布一些你的自定义对话框代码吗?我身上没有最新的代码。但这里有一些我修改过的代码,应该很容易理解我的意思。正如您所看到的,如果couldnotconnectoserver发生异常,它将返回null。这三行注释是我尝试过的三种不同的解决方案,但都不起作用。您是否尝试过使用此方法Disclease()…谢谢您的帮助。(虽然我确实使用了cancelpressed(),因为这样会更好)