我在基本对话框中有一个按钮,用于打开结果对话框。
private void showPlotResultsDialog() {
resultsDialog = new AplotPlotResultsDialog(getShell());
resultsDialog.setBlockOnOpen(true);
resultsDialog.open();
}
允许用户在工作时将结果对话框保持打开状态。但我最近注意到,用户可以多次点击“打开结果对话框” 每次单击都会打开一个新结果对话框。可以打开一些相同的对话框,表中有不同的数据。
答案 0 :(得分:1)
是否可以在单击按钮时检查对话框是否已打开?
不确定。只需在您的方法中检查null
即可。如果实例不为null,则打开一个对话框。
如果已打开一个,则弹出一条消息,说它已经打开并阻止打开一个新消息
最好更新对话框并将焦点设置在对话框上。保存用户必须关闭弹出消息,关闭对话框,然后打开相同的对话框。
答案 1 :(得分:1)
另一种可能性是使用以下方法为您的shell(应该只打开一次)一个唯一的ID:
shell.setData("yourID");
如果您有SelectionListener
(例如),则可以检查ID为Shell
的{{1}}是否已打开。
操作:
yourID
在某处打开:激活shell(设置焦点)Shell
未打开:打开shell 示例(见评论):
Shell