Issue #1196 - dialog refactor.

Former-commit-id: de6dd650a8 [formerly 961f141b5a5960ebadd2b1d17889734f06121358]
Former-commit-id: 88dc1c28ac
This commit is contained in:
Lee Venable 2012-09-25 12:55:52 -05:00
parent c9a16a0607
commit a04bf64502
2 changed files with 35 additions and 45 deletions

View file

@ -60,6 +60,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
* uses the font. * uses the font.
* Feb 03, 2012 14317 mhuang Make alarm display window wider * Feb 03, 2012 14317 mhuang Make alarm display window wider
* Sep 6, 2012 13365 rferrel Accumulate and Display fix. * Sep 6, 2012 13365 rferrel Accumulate and Display fix.
* Sep 25, 2012 1196 lvenable Dialog refactor for AlarmDisplayWindow. Added DO_NOT_BLOCK.
* *
* </pre> * </pre>
* *
@ -105,7 +106,7 @@ public class AlarmDisplayWindow extends CaveSWTDialog {
java.util.List<StdTextProduct> prodList, java.util.List<StdTextProduct> prodList,
ACCUMULATE_STATE accum_state) { ACCUMULATE_STATE accum_state) {
super(parentShell, SWT.RESIZE, CAVE.PERSPECTIVE_INDEPENDENT super(parentShell, SWT.RESIZE, CAVE.PERSPECTIVE_INDEPENDENT
| CAVE.INDEPENDENT_SHELL); | CAVE.INDEPENDENT_SHELL | CAVE.DO_NOT_BLOCK);
setText("Alarm Display Window"); setText("Alarm Display Window");
prods = prodList; prods = prodList;
if (prods == null) { if (prods == null) {

View file

@ -64,6 +64,7 @@ import com.raytheon.viz.texteditor.command.ICommand;
import com.raytheon.viz.texteditor.msgs.IAfosBrowserCallback; import com.raytheon.viz.texteditor.msgs.IAfosBrowserCallback;
import com.raytheon.viz.texteditor.util.TextEditorUtil; import com.raytheon.viz.texteditor.util.TextEditorUtil;
import com.raytheon.viz.ui.dialogs.CaveSWTDialog; import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
import com.raytheon.viz.ui.dialogs.ICloseCallback;
import com.raytheon.viz.ui.dialogs.ModeListener; import com.raytheon.viz.ui.dialogs.ModeListener;
/** /**
@ -94,6 +95,7 @@ import com.raytheon.viz.ui.dialogs.ModeListener;
* exception associated with closing "Current * exception associated with closing "Current
* Alarm Queue" GUI * Alarm Queue" GUI
* Sep 6, 2012 13365 rferrel Accumulate and Display fix. * Sep 6, 2012 13365 rferrel Accumulate and Display fix.
* Sep 25, 2012 1196 lvenable Dialog refactor for AlarmDisplayWindow.
* </pre> * </pre>
* *
* @author mnash * @author mnash
@ -384,32 +386,25 @@ public class CurrentAlarmQueue extends CaveSWTDialog implements
prods = produceTextProduct(command, refDate.getTime()); prods = produceTextProduct(command, refDate.getTime());
} }
if (alarmDisplayDlg == null) { // Display the Alarm Display Window
if (alarmDisplayDlg == null || alarmDisplayDlg.getShell().isDisposed()) {
alarmDisplayDlg = new AlarmDisplayWindow(shell, prods, alarmDisplayDlg = new AlarmDisplayWindow(shell, prods,
ACCUMULATE_STATE.UNCHANGE); ACCUMULATE_STATE.UNCHANGE);
alarmDisplayDlg.open(); alarmDisplayDlg.setCloseCallback(new ICloseCallback() {
if (list != null && !list.isDisposed() && list.getItemCount() == 0) {
close(); @Override
} public void dialogClosed(Object returnValue) {
} else { if (list != null && !list.isDisposed()
if (alarmDisplayDlg.getShell() == null && list.getItemCount() == 0) {
|| alarmDisplayDlg.getShell().isDisposed()) { close();
alarmDisplayDlg = new AlarmDisplayWindow(shell, prods, }
ACCUMULATE_STATE.UNCHANGE);
alarmDisplayDlg.open();
if (list != null && !list.isDisposed()
&& list.getItemCount() == 0) {
close();
} }
} else { });
alarmDisplayDlg.setProds(prods);
alarmDisplayDlg.setDialogFocus(); alarmDisplayDlg.open();
} } else {
} alarmDisplayDlg.setProds(prods);
if (list != null && !list.isDisposed()) { alarmDisplayDlg.setDialogFocus();
if (list.getItemCount() == 0) {
displayAll.setEnabled(false);
}
} }
} }
@ -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, alarmDisplayDlg = new AlarmDisplayWindow(shell, prods,
ACCUMULATE_STATE.TRUE); 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(); alarmDisplayDlg.open();
} else { } else {
if (alarmDisplayDlg.getShell() == null alarmDisplayDlg.setProds(prods);
|| alarmDisplayDlg.getShell().isDisposed()) { alarmDisplayDlg.setAccumulate(true);
alarmDisplayDlg = new AlarmDisplayWindow(shell, prods, alarmDisplayDlg.setDialogFocus();
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);
}
} }
} }