From dcee355e32de1038ee8402b91d0c3bee6801a977 Mon Sep 17 00:00:00 2001 From: Lee Venable Date: Tue, 25 Sep 2012 12:55:52 -0500 Subject: [PATCH] Issue #1196 - dialog refactor. Former-commit-id: 3da5869eba57cae8c48d821ca8bfd310e5b5690c [formerly de6dd650a81eed4dc624b53c5ff48d18a3816866] [formerly 3da5869eba57cae8c48d821ca8bfd310e5b5690c [formerly de6dd650a81eed4dc624b53c5ff48d18a3816866] [formerly 88dc1c28ac4dbeb27483a4afede2a9012bb24a95 [formerly 961f141b5a5960ebadd2b1d17889734f06121358]]] Former-commit-id: 88dc1c28ac4dbeb27483a4afede2a9012bb24a95 Former-commit-id: 3ed23048f0a772a6f0c0cfb0050d5257eeb97bb2 [formerly a04bf64502c1beffbe8c1dfd10600739c7be512b] Former-commit-id: 011c5df50efb5e505b3c79b5c1e21311baf57b4e --- .../dialogs/AlarmDisplayWindow.java | 3 +- .../alarmalert/dialogs/CurrentAlarmQueue.java | 77 ++++++++----------- 2 files changed, 35 insertions(+), 45 deletions(-) diff --git a/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/AlarmDisplayWindow.java b/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/AlarmDisplayWindow.java index f8982b781e..2e01d6d1dd 100644 --- a/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/AlarmDisplayWindow.java +++ b/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/AlarmDisplayWindow.java @@ -60,6 +60,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog; * uses the font. * Feb 03, 2012 14317 mhuang Make alarm display window wider * Sep 6, 2012 13365 rferrel Accumulate and Display fix. + * Sep 25, 2012 1196 lvenable Dialog refactor for AlarmDisplayWindow. Added DO_NOT_BLOCK. * * * @@ -105,7 +106,7 @@ public class AlarmDisplayWindow extends CaveSWTDialog { java.util.List prodList, ACCUMULATE_STATE accum_state) { super(parentShell, SWT.RESIZE, CAVE.PERSPECTIVE_INDEPENDENT - | CAVE.INDEPENDENT_SHELL); + | CAVE.INDEPENDENT_SHELL | CAVE.DO_NOT_BLOCK); setText("Alarm Display Window"); prods = prodList; if (prods == null) { diff --git a/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/CurrentAlarmQueue.java b/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/CurrentAlarmQueue.java index c110ad1010..8d8d0e62ce 100644 --- a/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/CurrentAlarmQueue.java +++ b/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/CurrentAlarmQueue.java @@ -64,6 +64,7 @@ import com.raytheon.viz.texteditor.command.ICommand; import com.raytheon.viz.texteditor.msgs.IAfosBrowserCallback; import com.raytheon.viz.texteditor.util.TextEditorUtil; import com.raytheon.viz.ui.dialogs.CaveSWTDialog; +import com.raytheon.viz.ui.dialogs.ICloseCallback; import com.raytheon.viz.ui.dialogs.ModeListener; /** @@ -94,6 +95,7 @@ import com.raytheon.viz.ui.dialogs.ModeListener; * exception associated with closing "Current * Alarm Queue" GUI * Sep 6, 2012 13365 rferrel Accumulate and Display fix. + * Sep 25, 2012 1196 lvenable Dialog refactor for AlarmDisplayWindow. * * * @author mnash @@ -384,32 +386,25 @@ public class CurrentAlarmQueue extends CaveSWTDialog implements prods = produceTextProduct(command, refDate.getTime()); } - if (alarmDisplayDlg == null) { + // Display the Alarm Display Window + if (alarmDisplayDlg == null || alarmDisplayDlg.getShell().isDisposed()) { alarmDisplayDlg = new AlarmDisplayWindow(shell, prods, ACCUMULATE_STATE.UNCHANGE); - alarmDisplayDlg.open(); - if (list != null && !list.isDisposed() && list.getItemCount() == 0) { - close(); - } - } else { - if (alarmDisplayDlg.getShell() == null - || alarmDisplayDlg.getShell().isDisposed()) { - alarmDisplayDlg = new AlarmDisplayWindow(shell, prods, - ACCUMULATE_STATE.UNCHANGE); - alarmDisplayDlg.open(); - if (list != null && !list.isDisposed() - && list.getItemCount() == 0) { - close(); + alarmDisplayDlg.setCloseCallback(new ICloseCallback() { + + @Override + public void dialogClosed(Object returnValue) { + if (list != null && !list.isDisposed() + && list.getItemCount() == 0) { + close(); + } } - } else { - alarmDisplayDlg.setProds(prods); - alarmDisplayDlg.setDialogFocus(); - } - } - if (list != null && !list.isDisposed()) { - if (list.getItemCount() == 0) { - displayAll.setEnabled(false); - } + }); + + alarmDisplayDlg.open(); + } else { + alarmDisplayDlg.setProds(prods); + alarmDisplayDlg.setDialogFocus(); } } @@ -457,31 +452,25 @@ public class CurrentAlarmQueue extends CaveSWTDialog implements } } - if (alarmDisplayDlg == null) { + // Display the Alarm Display Window + if (alarmDisplayDlg == null || alarmDisplayDlg.getShell().isDisposed()) { alarmDisplayDlg = new AlarmDisplayWindow(shell, prods, ACCUMULATE_STATE.TRUE); + alarmDisplayDlg.setCloseCallback(new ICloseCallback() { + @Override + public void dialogClosed(Object returnValue) { + if (list != null && !list.isDisposed()) { + if (list.getItemCount() == 0) { + displayAll.setEnabled(false); + } + } + } + }); alarmDisplayDlg.open(); } else { - if (alarmDisplayDlg.getShell() == null - || alarmDisplayDlg.getShell().isDisposed()) { - alarmDisplayDlg = new AlarmDisplayWindow(shell, prods, - ACCUMULATE_STATE.TRUE); - alarmDisplayDlg.open(); - } else { - alarmDisplayDlg.setProds(prods); - alarmDisplayDlg.setAccumulate(true); - alarmDisplayDlg.setDialogFocus(); - } - } - /* - * DR14795 - fix the "Unhandled event loop" exception - * by calling setEnabled on displayAll only - * for a valid list - */ - if (list != null && !list.isDisposed()) { - if (list.getItemCount() == 0) { - displayAll.setEnabled(false); - } + alarmDisplayDlg.setProds(prods); + alarmDisplayDlg.setAccumulate(true); + alarmDisplayDlg.setDialogFocus(); } }