我在基本对话框中有一个按钮,用于打开结果对话框。
private void showPlotResultsDialog() {
resultsDialog = new AplotPlotResultsDialog(getShell());
resultsDialog.setBlockOnOpen(true);
resultsDialog.open();
}
用户被允许在工作时让结果对话框保持打开状态。但是我最近注意到用户可以随意多次点击“打开结果对话框”。
每次点击都会打开一个新的结果对话框。可以打开几个相同的对话框,但表中的数据不同。
1.当用户点击按钮时,是否可以检查并查看对话框是否已经打开?如果已经打开,弹出消息,说明对话框已经打开并阻止打开新对话框。
3条答案
按热度按时间jmp7cifd1#
当他们点击按钮时,是否可以检查并查看对话框是否已经打开?
当然可以。只要在你的方法中检查
null
。如果示例不为空,那么对话框已经打开。如果一个已经打开,弹出一条消息,说明它已经打开并阻止打开新的
更新对话框并将焦点设置在对话框上会更好。2节省了用户关闭弹出消息,关闭对话框,然后打开同一个对话框的时间。
ajsxfq5m2#
另一种可能性是使用以下方法给予您的shell(应该只打开一次)提供一个唯一ID:
shell.setData("yourID");
例如,如果您有一个
SelectionListener
,则可以检查ID为yourID
的Shell
是否已经打开。行动:
Shell
在某处打开:激活 shell (设置焦点)Shell
未打开:打开 shell示例(见备注):
6l7fqoea3#
对话框只创建一次,并在监听器回调中使用。不要在回调中初始化对话框。
例如: