From 71c4d8db078f4ec38a3c9a447314f576746cc5b7 Mon Sep 17 00:00:00 2001 From: Slav Korolev Date: Wed, 17 Sep 2014 08:02:56 -0400 Subject: [PATCH] Issue #2757 - Updated handlers for dialog buttons. Former-commit-id: 69a82633c287bf18c9f436014bb552829dcb62ea --- .../fog/ui/actions/FogAreaConfigAction.java | 3 +- .../dialogs/FogMonitoringAreaConfigDlg.java | 37 +++++++++++++----- .../ui/actions/SafeseasAreaConfigAction.java | 3 +- .../ui/dialogs/SSMonitorMeteoTab.java | 19 +++++++-- .../ui/dialogs/SSMonitoringAreaConfigDlg.java | 35 ++++++++++------- .../snow/ui/actions/SnowAreaConfigAction.java | 3 +- .../dialogs/SnowMonitoringAreaConfigDlg.java | 39 +++++++++++++------ .../ui/dialogs/MonitoringAreaConfigDlg.java | 19 ++++----- 8 files changed, 108 insertions(+), 50 deletions(-) diff --git a/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/ui/actions/FogAreaConfigAction.java b/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/ui/actions/FogAreaConfigAction.java index a012ff85d9..42fbeab1dd 100644 --- a/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/ui/actions/FogAreaConfigAction.java +++ b/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/ui/actions/FogAreaConfigAction.java @@ -38,6 +38,7 @@ import com.raytheon.uf.viz.monitor.fog.ui.dialogs.FogMonitoringAreaConfigDlg; * Dec 19 2009 3963 dhladky Initial creation. * Jul 14 2010 6567 zhao Launch AreaConfigDlg w/o monitor * Nov.27, 2012 1297 skorolev Cleanup code for non-blocking dialog. + * Sep 16, 2014 2757 skorolev Added test of dialog on dispose. * * * @@ -51,7 +52,7 @@ public class FogAreaConfigAction extends AbstractHandler { @Override public Object execute(ExecutionEvent arg0) throws ExecutionException { - if (areaDialog == null) { + if (areaDialog == null || areaDialog.isDisposed()) { Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow() .getShell(); areaDialog = new FogMonitoringAreaConfigDlg(shell, diff --git a/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/ui/dialogs/FogMonitoringAreaConfigDlg.java b/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/ui/dialogs/FogMonitoringAreaConfigDlg.java index 22bac98d62..8d94413dd7 100644 --- a/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/ui/dialogs/FogMonitoringAreaConfigDlg.java +++ b/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/ui/dialogs/FogMonitoringAreaConfigDlg.java @@ -29,6 +29,7 @@ import com.raytheon.uf.common.monitor.data.ObConst.DataUsageKey; import com.raytheon.uf.viz.monitor.fog.FogMonitor; import com.raytheon.uf.viz.monitor.fog.threshold.FogThresholdMgr; import com.raytheon.uf.viz.monitor.ui.dialogs.MonitoringAreaConfigDlg; +import com.raytheon.viz.ui.dialogs.ICloseCallback; /** * Fog Monitor area configuration dialog. @@ -42,7 +43,7 @@ import com.raytheon.uf.viz.monitor.ui.dialogs.MonitoringAreaConfigDlg; * Nov 27, 2012 1351 skorolev Changes for non-blocking dialog. * Jan 29, 2014 2757 skorolev Changed OK button handler. * Apr 23, 2014 3054 skorolev Fixed issue with removing a new station from list. - * Sep 15, 2014 2757 skorolev Removed extra dialog. + * Sep 19, 2014 2757 skorolev Updated handlers for dialog buttons. * * * @@ -51,6 +52,15 @@ import com.raytheon.uf.viz.monitor.ui.dialogs.MonitoringAreaConfigDlg; */ public class FogMonitoringAreaConfigDlg extends MonitoringAreaConfigDlg { + + private FogMonDispThreshDlg fogMonitorDlg; + + /** + * Constructor. + * + * @param parent + * @param title + */ public FogMonitoringAreaConfigDlg(Shell parent, String title) { super(parent, title, AppName.FOG); readConfigData(); @@ -67,7 +77,6 @@ public class FogMonitoringAreaConfigDlg extends MonitoringAreaConfigDlg { */ @Override protected void handleOkBtnSelection() { - // Check for changes in the data if (dataIsChanged()) { int choice = showMessage(shell, SWT.OK | SWT.CANCEL, "Fog Monitor Confirm Changes", @@ -85,20 +94,30 @@ public class FogMonitoringAreaConfigDlg extends MonitoringAreaConfigDlg { */ FogThresholdMgr.reInitialize(); FogMonitor.reInitialize(); - if ((!configManager.getAddedZones().isEmpty()) || (!configManager.getAddedStations().isEmpty())) { if (editDialog() == SWT.YES) { - FogMonDispThreshDlg fogMonitorDlg = new FogMonDispThreshDlg( - shell, CommonConfig.AppName.FOG, - DataUsageKey.MONITOR); + fogMonitorDlg = new FogMonDispThreshDlg(shell, + CommonConfig.AppName.FOG, DataUsageKey.MONITOR); + fogMonitorDlg.setCloseCallback(new ICloseCallback() { + @Override + public void dialogClosed(Object returnValue) { + // Clear added zones and stations. + configManager.getAddedZones().clear(); + configManager.getAddedStations().clear(); + setReturnValue(true); + close(); + } + }); fogMonitorDlg.open(); } - configManager.getAddedZones().clear(); - configManager.getAddedStations().clear(); } } - } + } + if (fogMonitorDlg == null || fogMonitorDlg.isDisposed()) { + setReturnValue(true); + close(); + } } /* diff --git a/cave/com.raytheon.uf.viz.monitor.safeseas/src/com/raytheon/uf/viz/monitor/safeseas/ui/actions/SafeseasAreaConfigAction.java b/cave/com.raytheon.uf.viz.monitor.safeseas/src/com/raytheon/uf/viz/monitor/safeseas/ui/actions/SafeseasAreaConfigAction.java index 327d9c2ed4..90ee0770ab 100644 --- a/cave/com.raytheon.uf.viz.monitor.safeseas/src/com/raytheon/uf/viz/monitor/safeseas/ui/actions/SafeseasAreaConfigAction.java +++ b/cave/com.raytheon.uf.viz.monitor.safeseas/src/com/raytheon/uf/viz/monitor/safeseas/ui/actions/SafeseasAreaConfigAction.java @@ -38,6 +38,7 @@ import com.raytheon.uf.viz.monitor.safeseas.ui.dialogs.SSMonitoringAreaConfigDlg * Dec 28, 2009 3963 dhladky Initial creation. * March 5, 2012 14413 zhao Launch AreaConfigDlg w/o monitor * Nov.27, 2012 1297 skorolev Cleanup code for non-blocking dialog + * Sep 16, 2014 2757 skorolev Added test of dialog on dispose. * * * @@ -51,7 +52,7 @@ public class SafeseasAreaConfigAction extends AbstractHandler { @Override public Object execute(ExecutionEvent arg0) throws ExecutionException { - if (configDlg == null) { + if (configDlg == null || configDlg.isDisposed()) { Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow() .getShell(); configDlg = new SSMonitoringAreaConfigDlg(shell, diff --git a/cave/com.raytheon.uf.viz.monitor.safeseas/src/com/raytheon/uf/viz/monitor/safeseas/ui/dialogs/SSMonitorMeteoTab.java b/cave/com.raytheon.uf.viz.monitor.safeseas/src/com/raytheon/uf/viz/monitor/safeseas/ui/dialogs/SSMonitorMeteoTab.java index 69687f4401..d8ceb7207c 100644 --- a/cave/com.raytheon.uf.viz.monitor.safeseas/src/com/raytheon/uf/viz/monitor/safeseas/ui/dialogs/SSMonitorMeteoTab.java +++ b/cave/com.raytheon.uf.viz.monitor.safeseas/src/com/raytheon/uf/viz/monitor/safeseas/ui/dialogs/SSMonitorMeteoTab.java @@ -37,6 +37,22 @@ import com.raytheon.uf.viz.monitor.util.MonitorConfigConstants.SafeSeasMonitor; import com.raytheon.uf.viz.monitor.xml.AreaXML; import com.raytheon.uf.viz.monitor.xml.ThresholdsXML; +/** + * SAFESEAS Monitor Meteo Table. + * + *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date         Ticket#    Engineer    Description
+ * ------------ ---------- ----------- --------------------------
+ * Sep 17, 2014 2757       skorolev    Removed unnecessary printouts.
+ *
+ * 
+ * + * @author skorolev + * @version 1.0 + */ public class SSMonitorMeteoTab extends TabItemComp implements IUpdateMonitorMeteo { private SSMonitorMeteoEditDlg monitorMeteoEditDlg; @@ -191,9 +207,6 @@ public class SSMonitorMeteoTab extends TabItemComp implements IUpdateMonitorMete ssmmd.setWindSpeedR(sstm.getThresholdValue(duKey, threshKeyR, areaID, xmlKey)); ssmmd.setWindSpeedY(sstm.getThresholdValue(duKey, threshKeyY, areaID, xmlKey)); - System.out.println("=== " + sstm.getThresholdValue(duKey, threshKeyR, areaID, xmlKey)); - System.out.println("=== " + sstm.getThresholdValue(duKey, threshKeyY, areaID, xmlKey)); - /* * Peak Wind */ diff --git a/cave/com.raytheon.uf.viz.monitor.safeseas/src/com/raytheon/uf/viz/monitor/safeseas/ui/dialogs/SSMonitoringAreaConfigDlg.java b/cave/com.raytheon.uf.viz.monitor.safeseas/src/com/raytheon/uf/viz/monitor/safeseas/ui/dialogs/SSMonitoringAreaConfigDlg.java index 3e7e45277b..fad2f8a2aa 100644 --- a/cave/com.raytheon.uf.viz.monitor.safeseas/src/com/raytheon/uf/viz/monitor/safeseas/ui/dialogs/SSMonitoringAreaConfigDlg.java +++ b/cave/com.raytheon.uf.viz.monitor.safeseas/src/com/raytheon/uf/viz/monitor/safeseas/ui/dialogs/SSMonitoringAreaConfigDlg.java @@ -29,6 +29,7 @@ import com.raytheon.uf.common.monitor.data.ObConst.DataUsageKey; import com.raytheon.uf.viz.monitor.safeseas.SafeSeasMonitor; import com.raytheon.uf.viz.monitor.safeseas.threshold.SSThresholdMgr; import com.raytheon.uf.viz.monitor.ui.dialogs.MonitoringAreaConfigDlg; +import com.raytheon.viz.ui.dialogs.ICloseCallback; /** * SAFESEAS area configuration dialog. @@ -42,7 +43,8 @@ import com.raytheon.uf.viz.monitor.ui.dialogs.MonitoringAreaConfigDlg; * Nov 27, 2012 1351 skorolev Changes for non-blocking dialog. * Jan 29, 2014 2757 skorolev Changed OK button handler. * Apr 23, 2014 3054 skorolev Fixed issue with removing a new station from list. - * Sep 15, 2014 2757 skorolev Removed extra dialog. + * Sep 19, 2014 2757 skorolev Updated handlers for dialog buttons. + * * * * @@ -52,6 +54,8 @@ import com.raytheon.uf.viz.monitor.ui.dialogs.MonitoringAreaConfigDlg; public class SSMonitoringAreaConfigDlg extends MonitoringAreaConfigDlg { + private SSDispMonThreshDlg ssMonitorDlg; + /** * Constructor * @@ -66,15 +70,8 @@ public class SSMonitoringAreaConfigDlg extends MonitoringAreaConfigDlg { private SSMonitorConfigurationManager configManager = SSMonitorConfigurationManager .getInstance(); - /* - * (non-Javadoc) - * - * @see com.raytheon.uf.viz.monitor.ui.dialogs.MonitoringAreaConfigDlg# - * handleOkBtnSelection() - */ @Override protected void handleOkBtnSelection() { - // Check for changes in the data if (dataIsChanged()) { int choice = showMessage(shell, SWT.OK | SWT.CANCEL, "SAFESEAS Monitor Confirm Changes", @@ -95,16 +92,28 @@ public class SSMonitoringAreaConfigDlg extends MonitoringAreaConfigDlg { if ((!configManager.getAddedZones().isEmpty()) || (!configManager.getAddedStations().isEmpty())) { if (editDialog() == SWT.YES) { - SSDispMonThreshDlg ssMonitorDlg = new SSDispMonThreshDlg( - shell, CommonConfig.AppName.SAFESEAS, + ssMonitorDlg = new SSDispMonThreshDlg(shell, + CommonConfig.AppName.SAFESEAS, DataUsageKey.MONITOR); + ssMonitorDlg.setCloseCallback(new ICloseCallback() { + @Override + public void dialogClosed(Object returnValue) { + // Clear added zones and stations. + configManager.getAddedZones().clear(); + configManager.getAddedStations().clear(); + setReturnValue(true); + close(); + } + }); ssMonitorDlg.open(); } - configManager.getAddedZones().clear(); - configManager.getAddedStations().clear(); } } - } + } + if (ssMonitorDlg == null || ssMonitorDlg.isDisposed()) { + setReturnValue(true); + close(); + } } /* diff --git a/cave/com.raytheon.uf.viz.monitor.snow/src/com/raytheon/uf/viz/monitor/snow/ui/actions/SnowAreaConfigAction.java b/cave/com.raytheon.uf.viz.monitor.snow/src/com/raytheon/uf/viz/monitor/snow/ui/actions/SnowAreaConfigAction.java index e1a179017a..0526965870 100644 --- a/cave/com.raytheon.uf.viz.monitor.snow/src/com/raytheon/uf/viz/monitor/snow/ui/actions/SnowAreaConfigAction.java +++ b/cave/com.raytheon.uf.viz.monitor.snow/src/com/raytheon/uf/viz/monitor/snow/ui/actions/SnowAreaConfigAction.java @@ -38,6 +38,7 @@ import com.raytheon.uf.viz.monitor.snow.ui.dialogs.SnowMonitoringAreaConfigDlg; * Dec 28, 2009 3963 dhladky Initial creation. * March 5, 2012 14413 zhao Launch AreaConfigDlg w/o monitor * Nov.27, 2012 1297 skorolev Cleanup code for non-blocking dialog + * Sep 16, 2014 2757 skorolev Added test of dialog on dispose. * * * @@ -51,7 +52,7 @@ public class SnowAreaConfigAction extends AbstractHandler { @Override public Object execute(ExecutionEvent arg0) throws ExecutionException { - if (configDlg == null) { + if (configDlg == null || configDlg.isDisposed()) { Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow() .getShell(); configDlg = new SnowMonitoringAreaConfigDlg(shell, diff --git a/cave/com.raytheon.uf.viz.monitor.snow/src/com/raytheon/uf/viz/monitor/snow/ui/dialogs/SnowMonitoringAreaConfigDlg.java b/cave/com.raytheon.uf.viz.monitor.snow/src/com/raytheon/uf/viz/monitor/snow/ui/dialogs/SnowMonitoringAreaConfigDlg.java index a615e67f1b..078e2fa2ab 100644 --- a/cave/com.raytheon.uf.viz.monitor.snow/src/com/raytheon/uf/viz/monitor/snow/ui/dialogs/SnowMonitoringAreaConfigDlg.java +++ b/cave/com.raytheon.uf.viz.monitor.snow/src/com/raytheon/uf/viz/monitor/snow/ui/dialogs/SnowMonitoringAreaConfigDlg.java @@ -29,6 +29,7 @@ import com.raytheon.uf.common.monitor.data.ObConst.DataUsageKey; import com.raytheon.uf.viz.monitor.snow.SnowMonitor; import com.raytheon.uf.viz.monitor.snow.threshold.SnowThresholdMgr; import com.raytheon.uf.viz.monitor.ui.dialogs.MonitoringAreaConfigDlg; +import com.raytheon.viz.ui.dialogs.ICloseCallback; /** * SNOW Monitor area configuration dialog. @@ -42,7 +43,7 @@ import com.raytheon.uf.viz.monitor.ui.dialogs.MonitoringAreaConfigDlg; * Nov 27, 2012 1351 skorolev Changes for non-blocking dialog. * Jan 29, 2014 2757 skorolev Changed OK button handler. * Apr 23, 2014 3054 skorolev Fixed issue with removing a new station from list. - * Sep 15, 2014 2757 skorolev Removed extra dialog. + * Sep 19, 2014 2757 skorolev Updated handlers for dialog buttons. * * * @@ -52,6 +53,14 @@ import com.raytheon.uf.viz.monitor.ui.dialogs.MonitoringAreaConfigDlg; public class SnowMonitoringAreaConfigDlg extends MonitoringAreaConfigDlg { + private SnowMonDispThreshDlg snowMonitorDlg; + + /** + * Constructor + * + * @param parent + * @param title + */ public SnowMonitoringAreaConfigDlg(Shell parent, String title) { super(parent, title, AppName.SNOW); readConfigData(); @@ -64,11 +73,10 @@ public class SnowMonitoringAreaConfigDlg extends MonitoringAreaConfigDlg { * (non-Javadoc) * * @see com.raytheon.uf.viz.monitor.ui.dialogs.MonitoringAreaConfigDlg# - * handleOkBtnSelection() + * handleApplyBtnSelection() */ @Override protected void handleOkBtnSelection() { - // Check for changes in the data if (dataIsChanged()) { int choice = showMessage(shell, SWT.OK | SWT.CANCEL, "SNOW Monitor Confirm Changes", @@ -84,20 +92,30 @@ public class SnowMonitoringAreaConfigDlg extends MonitoringAreaConfigDlg { */ SnowThresholdMgr.reInitialize(); SnowMonitor.reInitialize(); - if ((!configManager.getAddedZones().isEmpty()) || (!configManager.getAddedStations().isEmpty())) { if (editDialog() == SWT.YES) { - SnowMonDispThreshDlg snowMonitorDlg = new SnowMonDispThreshDlg( - shell, CommonConfig.AppName.SNOW, - DataUsageKey.MONITOR); + snowMonitorDlg = new SnowMonDispThreshDlg(shell, + CommonConfig.AppName.SNOW, DataUsageKey.MONITOR); + snowMonitorDlg.setCloseCallback(new ICloseCallback() { + @Override + public void dialogClosed(Object returnValue) { + // Clear added zones and stations. + configManager.getAddedZones().clear(); + configManager.getAddedStations().clear(); + setReturnValue(true); + close(); + } + }); snowMonitorDlg.open(); } } - configManager.getAddedZones().clear(); - configManager.getAddedStations().clear(); } - } + } + if (snowMonitorDlg == null || snowMonitorDlg.isDisposed()) { + setReturnValue(true); + close(); + } } /* @@ -135,5 +153,4 @@ public class SnowMonitoringAreaConfigDlg extends MonitoringAreaConfigDlg { timeWindow.setSelection(configManager.getTimeWindow()); setTimeScaleLabel(); } - } diff --git a/cave/com.raytheon.uf.viz.monitor/src/com/raytheon/uf/viz/monitor/ui/dialogs/MonitoringAreaConfigDlg.java b/cave/com.raytheon.uf.viz.monitor/src/com/raytheon/uf/viz/monitor/ui/dialogs/MonitoringAreaConfigDlg.java index 274379e9ab..f3bf26da9f 100644 --- a/cave/com.raytheon.uf.viz.monitor/src/com/raytheon/uf/viz/monitor/ui/dialogs/MonitoringAreaConfigDlg.java +++ b/cave/com.raytheon.uf.viz.monitor/src/com/raytheon/uf/viz/monitor/ui/dialogs/MonitoringAreaConfigDlg.java @@ -73,6 +73,7 @@ import com.raytheon.viz.ui.dialogs.ICloseCallback; * Oct 07, 2013 #2443 lvenable Fixed image memory leak. * Jan 29, 2014 2757 skorolev Added status variables. * Apr 23, 2014 3054 skorolev Fixed issue with removing from list a new zone and a new station. + * Sep 16, 2014 2757 skorolev Updated createBottomButtons method. * * * @author lvenable @@ -1284,18 +1285,12 @@ public abstract class MonitoringAreaConfigDlg extends CaveSWTDialog implements } /** - * Called when the cancel or "X" button is clicked. + * Called when the cancel. */ private void closeWithoutSave() { - int choice = showMessage(shell, SWT.YES | SWT.NO, appName - + " Monitor Exit", "Are you sure you want to exit?"); - if (choice == SWT.YES) { - MonitorConfigurationManager configManager = getConfigManager(); - configManager.setAddedZones(new ArrayList()); - configManager.setAddedStations(new ArrayList()); - setReturnValue(true); - close(); - } + resetStatus(); + setReturnValue(true); + close(); } /** @@ -1304,7 +1299,8 @@ public abstract class MonitoringAreaConfigDlg extends CaveSWTDialog implements protected abstract void setAlgorithmText(); /** - * Handles OK button. + * Handles OK button. Save changes and close the dialog (or just close if + * there are no changes). */ protected abstract void handleOkBtnSelection(); @@ -1466,4 +1462,5 @@ public abstract class MonitoringAreaConfigDlg extends CaveSWTDialog implements "Edit Thresholds Now?", message2); return yesno; } + }