所以我正在创建一个eclipse插件,我通过扩展对话框类来创建自己的对话框。
我的对话框基本上使用来自服务器的数据填充树视图。有时无法填充数据(因为服务器已关闭),因此我的树视图为空。
如果我无法连接到服务器,我会显示另一个对话框报告错误。 我的问题是,当我在错误对话框中按ok时,我想关闭初始对话框。
我无法找到一个很好的方法来做到这一点。 我试过将setBlockOnOpen设置为false。 我试过调用cancelPressed。 他们都没有工作。 我在createDialogArea函数中调用它们。
关于如何让它发挥作用的任何想法?
答案 0 :(得分:2)
它基本上是用户取消对话框。你需要调用cancelPressed()
所以如果你有任何依赖于returnCode
if(noDataLoaded){
Display.getDefault().asyncExec(new Runnable() {
public void run() {
cancelPressed():
}
});
}
答案 1 :(得分:1)
对话框创建完成后,您需要进行close
调用。您可以使用以下代码执行此操作:
parent.getDisplay().asyncExec(new Runnable()
{
@Override
public void run()
{
close();
}
});
在您的createDialogArea
方法中。但是,对话框可能会短暂显示。在创建对话框之前进行检查会更好。