From dd36e66c1bdeca61dcb932f4909883e7b9ef004f Mon Sep 17 00:00:00 2001 From: Roger Ferrel Date: Mon, 8 Oct 2012 08:50:13 -0500 Subject: [PATCH] Issue #1229 Changes to make GenScriptsDlg non-blocking. Change-Id: I1b5e7b49825e9457b0804e71f2ff1d3bb7603840 Former-commit-id: 91488d4632081c1a5df5ede0dec8cead29dda003 [formerly 4434a4844457f0d69564a74dd7523fb27585f4f5] [formerly 91488d4632081c1a5df5ede0dec8cead29dda003 [formerly 4434a4844457f0d69564a74dd7523fb27585f4f5] [formerly 9f0939fa6b78ae9bff4ecd70f3a5d6e0d83f45fe [formerly 2b15bb971d700ffdbb185399fd69a6546379ae54]]] Former-commit-id: 9f0939fa6b78ae9bff4ecd70f3a5d6e0d83f45fe Former-commit-id: 127628d7d8b0237ac777717a3ca8c984eb5a0e00 [formerly bf4ffe6a32cb5585ebef3f2104a0e6d4d2db1a4c] Former-commit-id: 86e8f11be355395570c356aaa66dfdb3fe0064e8 --- .../climatedata/ClimateDataMenuDlg.java | 22 +++++++--- .../aviation/climatedata/GenScriptsDlg.java | 18 +++----- .../aviation/climatedata/NCDCInvHistDlg.java | 41 +++++++++++++++---- 3 files changed, 55 insertions(+), 26 deletions(-) diff --git a/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/climatedata/ClimateDataMenuDlg.java b/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/climatedata/ClimateDataMenuDlg.java index 4d59953444..e20636e1d8 100644 --- a/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/climatedata/ClimateDataMenuDlg.java +++ b/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/climatedata/ClimateDataMenuDlg.java @@ -73,6 +73,7 @@ import com.raytheon.viz.avncommon.AvnMessageMgr.StatusMessageType; import com.raytheon.viz.avnconfig.HelpUsageDlg; import com.raytheon.viz.avnconfig.TafSiteConfigFactory; import com.raytheon.viz.ui.dialogs.CaveSWTDialog; +import com.raytheon.viz.ui.dialogs.ICloseCallback; /** * This class displays the main Climate Data dialog. @@ -92,7 +93,8 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog; * May 24, 2011 #9075 rferrel Changed getObsHistoryFromInv() to scan * ish-inventory.txt only one time. * Oct 04, 2012 #1229 rferrel Made non-blocking. - * Oct 04, 2012 #1229 rfrreel Changes of non-blocking ClimateHistoryDlg. + * Oct 04, 2012 #1229 rferrel Changes for non-blocking ClimateHistoryDlg. + * Oct 08, 2012 #1229 rferrel Changes for non-blocking GenScriptsDlg. * * * @@ -869,12 +871,20 @@ public class ClimateDataMenuDlg extends CaveSWTDialog { * Display the generate scripts dialog. */ private void displayGenerateScriptDialog() { - if (generateScriptsDlg == null) { + if (generateScriptsDlg == null || generateScriptsDlg.getShell() == null + || generateScriptsDlg.isDisposed()) { ClimateDataManager.getInstance().assessStationsMap(this); - generateScriptsDlg = new GenScriptsDlg(shell); - Boolean bool = (Boolean) generateScriptsDlg.open("data"); - generateScriptsDlg = null; - genScriptsBtn.setEnabled(bool); + generateScriptsDlg = new GenScriptsDlg(shell, "data"); + generateScriptsDlg.setCloseCallback(new ICloseCallback() { + + @Override + public void dialogClosed(Object returnValue) { + genScriptsBtn.setEnabled((Boolean) returnValue); + } + }); + generateScriptsDlg.open(); + } else { + generateScriptsDlg.bringToTop(); } } diff --git a/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/climatedata/GenScriptsDlg.java b/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/climatedata/GenScriptsDlg.java index b2d6f35f50..757eca5f0c 100644 --- a/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/climatedata/GenScriptsDlg.java +++ b/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/climatedata/GenScriptsDlg.java @@ -70,6 +70,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog; * to the correct directory. * May 10, 2011 #8844 rferrel Display error message when unable * to save a script. + * Oct 08, 2012 #1229 rferrel Made non-blocking. * * * @@ -132,23 +133,16 @@ public class GenScriptsDlg extends CaveSWTDialog { /** * Constructor. * + * @param style * @param parentShell * Parent shell. */ - public GenScriptsDlg(Shell parentShell) { - super(parentShell, SWT.DIALOG_TRIM, CAVE.PERSPECTIVE_INDEPENDENT); + public GenScriptsDlg(Shell parentShell, String style) { + super(parentShell, SWT.DIALOG_TRIM, CAVE.PERSPECTIVE_INDEPENDENT + | CAVE.DO_NOT_BLOCK); setText("Generate Scripts"); - initFtpArgs(); - } - - /** - * Open the dialog. - * - * @return null. - */ - public Object open(String style) { this.style = style; - return open(); + initFtpArgs(); } public void preOpened() { diff --git a/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/climatedata/NCDCInvHistDlg.java b/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/climatedata/NCDCInvHistDlg.java index 2a30c83010..bfd9f6f475 100644 --- a/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/climatedata/NCDCInvHistDlg.java +++ b/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/climatedata/NCDCInvHistDlg.java @@ -43,6 +43,7 @@ import com.raytheon.uf.common.status.UFStatus; import com.raytheon.uf.common.status.UFStatus.Priority; import com.raytheon.uf.viz.core.exception.VizException; import com.raytheon.viz.ui.dialogs.CaveSWTDialog; +import com.raytheon.viz.ui.dialogs.ICloseCallback; /** * This class displays the NCDC Inventory/History dialog. @@ -53,6 +54,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * Nov 16, 2009 #3438 lvenable Initial creation + * Oct 08, 2012 #1229 rferrel Changes for non-blocking GenScriptsDlg. * * * @@ -225,10 +227,22 @@ public class NCDCInvHistDlg extends CaveSWTDialog { invScriptBtn.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { - if (generateScriptsDlg == null) { - generateScriptsDlg = new GenScriptsDlg(shell); - generateScriptsDlg.open("inv"); - generateScriptsDlg = null; + if (generateScriptsDlg == null + || generateScriptsDlg.getShell() == null + || generateScriptsDlg.isDisposed()) { + histScriptBtn.setEnabled(false); + + generateScriptsDlg = new GenScriptsDlg(shell, "inv"); + generateScriptsDlg.setCloseCallback(new ICloseCallback() { + + @Override + public void dialogClosed(Object returnValue) { + histScriptBtn.setEnabled(true); + } + }); + generateScriptsDlg.open(); + } else { + generateScriptsDlg.bringToTop(); } } }); @@ -300,10 +314,21 @@ public class NCDCInvHistDlg extends CaveSWTDialog { histScriptBtn.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { - if (generateScriptsDlg == null) { - generateScriptsDlg = new GenScriptsDlg(shell); - generateScriptsDlg.open("his"); - generateScriptsDlg = null; + if (generateScriptsDlg == null + || generateScriptsDlg.getShell() == null + || generateScriptsDlg.isDisposed()) { + invScriptBtn.setEnabled(false); + generateScriptsDlg = new GenScriptsDlg(shell, "his"); + generateScriptsDlg.setCloseCallback(new ICloseCallback() { + + @Override + public void dialogClosed(Object returnValue) { + invScriptBtn.setEnabled(true); + } + }); + generateScriptsDlg.open(); + } else { + generateScriptsDlg.bringToTop(); } } });