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,34 +386,27 @@ 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 (alarmDisplayDlg.getShell() == null
|| alarmDisplayDlg.getShell().isDisposed()) {
alarmDisplayDlg = new AlarmDisplayWindow(shell, prods,
ACCUMULATE_STATE.UNCHANGE);
alarmDisplayDlg.open();
if (list != null && !list.isDisposed() if (list != null && !list.isDisposed()
&& list.getItemCount() == 0) { && list.getItemCount() == 0) {
close(); close();
} }
}
});
alarmDisplayDlg.open();
} else { } else {
alarmDisplayDlg.setProds(prods); alarmDisplayDlg.setProds(prods);
alarmDisplayDlg.setDialogFocus(); alarmDisplayDlg.setDialogFocus();
} }
} }
if (list != null && !list.isDisposed()) {
if (list.getItemCount() == 0) {
displayAll.setEnabled(false);
}
}
}
/** /**
* Display all the products in the alarm queue list and clear the list. * Display all the products in the alarm queue list and clear the list.
@ -457,15 +452,20 @@ public class CurrentAlarmQueue extends CaveSWTDialog implements
} }
} }
if (alarmDisplayDlg == null) { // Display the Alarm Display Window
alarmDisplayDlg = new AlarmDisplayWindow(shell, prods, if (alarmDisplayDlg == null || alarmDisplayDlg.getShell().isDisposed()) {
ACCUMULATE_STATE.TRUE);
alarmDisplayDlg.open();
} else {
if (alarmDisplayDlg.getShell() == 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 {
alarmDisplayDlg.setProds(prods); alarmDisplayDlg.setProds(prods);
@ -473,17 +473,6 @@ public class CurrentAlarmQueue extends CaveSWTDialog implements
alarmDisplayDlg.setDialogFocus(); 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);
}
}
}
/** /**
* Add a line to list that contains the afosPil and a date displayed as a * Add a line to list that contains the afosPil and a date displayed as a