From 4edf63d2c4d59d1fde45115be7bc6d8767b0445f Mon Sep 17 00:00:00 2001 From: Roger Ferrel Date: Thu, 29 Nov 2012 11:55:33 -0600 Subject: [PATCH] Issue #1353 Changes for non-blocking FFFGDlg, AboutDlg, AcknowledgmentsDlg and HelpDlg dialogs. Change-Id: Id72c6a0c0329f485fe7a9ca115c3f029019145e6 Former-commit-id: 7e77a02b950abe979ebff14b331f7c788435f2ba [formerly 9832e2dbb01bb6f1ca7a08a981bbec39d4b42f94] [formerly 64a78503b2aa38cc0b194d56f937a51317223053] [formerly 7e77a02b950abe979ebff14b331f7c788435f2ba [formerly 9832e2dbb01bb6f1ca7a08a981bbec39d4b42f94] [formerly 64a78503b2aa38cc0b194d56f937a51317223053] [formerly f3b83e02b49bea91a2a13e81cfa66cb062e90923 [formerly 64a78503b2aa38cc0b194d56f937a51317223053 [formerly 372417c1d355e3c5eef327f14be9b72dfe1e0f08]]]] Former-commit-id: f3b83e02b49bea91a2a13e81cfa66cb062e90923 Former-commit-id: cc2d52af3256056d7ab8c106db75858ea55de96e [formerly 1533fda1e3566fe094b7db1ebdd0a0233765c3ea] [formerly 7aae9102eeaa2b1c0c643c122b7d3101a82c87ad [formerly 391f07ea6933e35425336afc2a6a837990a7f9dc]] Former-commit-id: 5cdc1987feec65383ba51407300250bcf067e1f4 [formerly 49bdfb071cb37e93f73395409edaf2e577691efc] Former-commit-id: 7e243e872c14e13b5661c15612fe8844c4eb1496 --- .../uf/viz/monitor/ffmp/fffg/AboutDlg.java | 54 ++++-- .../monitor/ffmp/fffg/AcknowledgmentsDlg.java | 48 +++-- .../uf/viz/monitor/ffmp/fffg/FFFGDlg.java | 183 ++++++++++-------- .../uf/viz/monitor/ffmp/fffg/HelpDlg.java | 72 ++++--- .../monitor/ffmp/ui/actions/FFFGAction.java | 23 +-- 5 files changed, 225 insertions(+), 155 deletions(-) diff --git a/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/fffg/AboutDlg.java b/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/fffg/AboutDlg.java index e49133d7fe..c08e798be8 100644 --- a/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/fffg/AboutDlg.java +++ b/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/fffg/AboutDlg.java @@ -30,15 +30,33 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; -import com.raytheon.viz.ui.dialogs.CaveSWTDialog; +import com.raytheon.viz.ui.dialogs.CaveSWTDialog; -public class AboutDlg extends CaveSWTDialog{ +/** + * Displays the FFFG About information + * + *
+ * 
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    Engineer    Description
+ * ------------ ---------- ----------- --------------------------
+ *                                     Initial creation
+ * Nov 29, 2012 1353       rferrel     Made dialog non-blocking.
+ * 
+ * 
+ * + * @author rferrel + * @version 1.0 + */ +public class AboutDlg extends CaveSWTDialog { /** * The label object. */ - private Label aboutLbl; + private Label aboutLbl; + /** * Constructor. * @@ -46,12 +64,13 @@ public class AboutDlg extends CaveSWTDialog{ * Parent shell. */ public AboutDlg(Shell parent) { - super(parent); + super(parent, SWT.DIALOG_TRIM, CAVE.DO_NOT_BLOCK); setText("About ForcedFFG"); - } + } + /* * (non-Javadoc) - * + * * @see * com.raytheon.viz.ui.dialogs.CaveSWTDialogBase#initializeComponents(org * .eclipse.swt.widgets.Shell) @@ -60,14 +79,13 @@ public class AboutDlg extends CaveSWTDialog{ protected void initializeComponents(final Shell shell) { setReturnValue(false); - // Initialize layout GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true); gd.widthHint = 400; gd.heightHint = 100; - aboutLbl=new Label(shell,SWT.None); - aboutLbl.setLayoutData(gd); + aboutLbl = new Label(shell, SWT.None); + aboutLbl.setLayoutData(gd); // Add a close button Composite centeredComp = new Composite(shell, SWT.NONE); @@ -88,21 +106,22 @@ public class AboutDlg extends CaveSWTDialog{ populateDlg(); -} - + } + private void populateDlg() { - String aboutText = " The ForceFFG GUI was closely followed FFMP, LSR,\n"+ - " ForcedFFG applications and was based on input from\n"+ - " the AWIPS User Interface Working Group. Visit \n"+ - " http://www.nws.noaa.gov/mdl/ffmp/ for more details\n"+ - " regarding this ForcedFFG GUI."; + String aboutText = " The ForceFFG GUI was closely followed FFMP, LSR,\n" + + " ForcedFFG applications and was based on input from\n" + + " the AWIPS User Interface Working Group. Visit \n" + + " http://www.nws.noaa.gov/mdl/ffmp/ for more details\n" + + " regarding this ForcedFFG GUI."; this.aboutLbl.setText(aboutText); this.shell.pack(); } + /* * (non-Javadoc) - * + * * @see com.raytheon.viz.ui.dialogs.CaveSWTDialogBase#disposed() */ @Override @@ -111,4 +130,3 @@ public class AboutDlg extends CaveSWTDialog{ } } - diff --git a/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/fffg/AcknowledgmentsDlg.java b/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/fffg/AcknowledgmentsDlg.java index 2fef6999e7..e989006bd1 100644 --- a/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/fffg/AcknowledgmentsDlg.java +++ b/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/fffg/AcknowledgmentsDlg.java @@ -32,12 +32,29 @@ import org.eclipse.swt.widgets.Shell; import com.raytheon.viz.ui.dialogs.CaveSWTDialog; -public class AcknowledgmentsDlg extends CaveSWTDialog{ +/** + * Dialog to dispaly FFFG Acknowledgments. + * + *
+ * 
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    Engineer    Description
+ * ------------ ---------- ----------- --------------------------
+ *                                     Initial creation
+ * Nov 29, 2012 1353       rferrel     Made dialog non-blocking.
+ * 
+ * 
+ * + * @author rferrel + * @version 1.0 + */ +public class AcknowledgmentsDlg extends CaveSWTDialog { /** * Create the label object. */ - private Label acknowledgmentsLbl; + private Label acknowledgmentsLbl; /** * Constructor. @@ -46,12 +63,13 @@ public class AcknowledgmentsDlg extends CaveSWTDialog{ * Parent shell. */ public AcknowledgmentsDlg(Shell parent) { - super(parent); + super(parent, SWT.DIALOG_TRIM, CAVE.DO_NOT_BLOCK); setText("Acknowledgments"); } + /* * (non-Javadoc) - * + * * @see * com.raytheon.viz.ui.dialogs.CaveSWTDialogBase#initializeComponents(org * .eclipse.swt.widgets.Shell) @@ -59,14 +77,14 @@ public class AcknowledgmentsDlg extends CaveSWTDialog{ @Override protected void initializeComponents(final Shell shell) { setReturnValue(false); - + // Initialize layout GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true); gd.widthHint = 390; gd.heightHint = 80; - acknowledgmentsLbl=new Label(shell,SWT.None); + acknowledgmentsLbl = new Label(shell, SWT.None); acknowledgmentsLbl.setLayoutData(gd); - + // Add a close button Composite centeredComp = new Composite(shell, SWT.NONE); GridLayout gl = new GridLayout(1, false); @@ -88,20 +106,21 @@ public class AcknowledgmentsDlg extends CaveSWTDialog{ populateDlg(); -} - + } + private void populateDlg() { - String acknowledgementsText = " Special thanks to Lingyan Xin, Tom Filiaggi, Qinglu Lin,\n" + - " Mike Churma, Arthur Taylor, Xuning Tan, Bei Wang and\n" + - " others in MDL for their many valuable help for their\n"+ - " many valuable help and suggestions!"; + String acknowledgementsText = " Special thanks to Lingyan Xin, Tom Filiaggi, Qinglu Lin,\n" + + " Mike Churma, Arthur Taylor, Xuning Tan, Bei Wang and\n" + + " others in MDL for their many valuable help for their\n" + + " many valuable help and suggestions!"; this.acknowledgmentsLbl.setText(acknowledgementsText); this.shell.pack(); } + /* * (non-Javadoc) - * + * * @see com.raytheon.viz.ui.dialogs.CaveSWTDialogBase#disposed() */ @Override @@ -109,4 +128,3 @@ public class AcknowledgmentsDlg extends CaveSWTDialog{ super.disposed(); } } - diff --git a/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/fffg/FFFGDlg.java b/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/fffg/FFFGDlg.java index 60dd6a11f3..28cb0a44d5 100644 --- a/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/fffg/FFFGDlg.java +++ b/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/fffg/FFFGDlg.java @@ -78,14 +78,19 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * Mar 10, 2010 #4517 lvenable Initial creation - * Dec 12, 2011 #11225 gzhang Large font for FFG value,expiration time + * Dec 12, 2011 #11225 gzhang Large font for FFG value,expiration time + * Nov 29, 2012 #1353 rferrel Make dialog non-blocking. + * Changes for non-blocking AboutDlg. + * Changes for non-blocking AcknowledgmentsDlg. + * Changes for non-blocking HelpDlg. * * * * @author lvenable * @version 1.0 */ -public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGData { +public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, + IFFFGData { private final String MODIFIED = "Modified"; /** @@ -196,7 +201,7 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa /** * Array of source composites on the display. */ - private ArrayList sourceCompArray; + private java.util.List sourceCompArray; /** * Maximum number of source columns that can be displayed. @@ -255,21 +260,21 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa private Composite statusComp; private SimpleDateFormat statusFormat; - + private Thread dataRetrieveThread = null; - + private LinkedHashMap guidances; - + /** * large Text Font */ private Font largeTextFont; - + /** * large Spinner Font */ private Font largeSipnnerFont; - + /** * Constructor. * @@ -277,11 +282,12 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa * Parent shell. */ public FFFGDlg(Shell parentShell) { - super(parentShell, SWT.DIALOG_TRIM, CAVE.INDEPENDENT_SHELL); + super(parentShell, SWT.DIALOG_TRIM, CAVE.INDEPENDENT_SHELL + | CAVE.DO_NOT_BLOCK); this.getParent().setCursor( this.getParent().getDisplay().getSystemCursor(SWT.CURSOR_WAIT)); setText("Forced Flash Flood Guidance"); - + sourceCompArray = new ArrayList(); labelFont = new Font(getDisplay(), "Sans", 9, SWT.BOLD); listFont = new Font(getDisplay(), "Monospace", 9, SWT.NORMAL); @@ -301,12 +307,12 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa labelFont.dispose(); listFont.dispose(); statusFont.dispose(); - - if(largeSipnnerFont != null) - largeSipnnerFont.dispose(); - - if(largeTextFont != null) - largeTextFont.dispose(); + + if (largeSipnnerFont != null) + largeSipnnerFont.dispose(); + + if (largeTextFont != null) + largeTextFont.dispose(); } /* @@ -332,7 +338,7 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa dlgData.setCallback(this); dataRetrieveThread = new Thread(dlgData); dataRetrieveThread.start(); - + createMenus(); createCurrentFileLabel(); createMainFFFGComposite(); @@ -545,7 +551,7 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa ffgValueTF.setText("1.0"); largeTextFont = getLargeFont(ffgValueTF); ffgValueTF.setFont(largeTextFont); - + Label expireLbl = new Label(ffgExpireComp, SWT.NONE); expireLbl.setText("Enter expiration time (hour): "); @@ -557,7 +563,7 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa expireTimeSpnr.setSelection(12); largeSipnnerFont = getLargeFont(expireTimeSpnr); expireTimeSpnr.setFont(largeSipnnerFont); - + /* * CWA-Wide header */ @@ -777,14 +783,14 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa @Override public void widgetSelected(SelectionEvent e) { getParent().setCursor( - getParent().getDisplay() - .getSystemCursor(SWT.CURSOR_WAIT)); + getParent().getDisplay().getSystemCursor( + SWT.CURSOR_WAIT)); shell.setCursor(getDisplay().getSystemCursor(SWT.CURSOR_WAIT)); applyDataAction(); updateFileStatusLabel(false); getParent().setCursor( - getParent().getDisplay() - .getSystemCursor(SWT.CURSOR_ARROW)); + getParent().getDisplay().getSystemCursor( + SWT.CURSOR_ARROW)); shell.setCursor(getDisplay().getSystemCursor(SWT.CURSOR_ARROW)); saveFileAs(); @@ -1088,14 +1094,14 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa FFFGDataMgr fdm = FFFGDataMgr.getInstance(); ArrayList srcCompData = getSourceCompData(); ArrayList> basinList = new ArrayList>(); - for (SourceCompData scd: srcCompData) { + for (SourceCompData scd : srcCompData) { ArrayList list = new ArrayList(); ArrayList dataList = scd.getCountyBasinData(); - for (ValueNameIdData vni: dataList) { + for (ValueNameIdData vni : dataList) { // Get the basins for each county ArrayList pfafs = templates.getAllAggregatePfafs( vni.getId(), "COUNTY"); - for (long pfaf: pfafs) { + for (long pfaf : pfafs) { list.add(new FFFGBasinIdXML(pfaf, vni.getValue())); } } @@ -1121,7 +1127,7 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa if (expHoursInMillis == 0) { return expHoursInMillis; } - + long expTimeInMillis = SimulatedTime.getSystemTime().getTime() .getTime() + expHoursInMillis; @@ -1139,7 +1145,6 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa for (SourceComp sc : sourceCompArray) { if (sc.hasData() == true) { -// sc.getSourceData().printData(); // TODO - remove print statement srcCompData.add(sc.getSourceData()); } } @@ -1473,8 +1478,8 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa FFMPBasinMetaData basinMetaData; for (FFMPCounty county : countyArray) { - pfafArray = templates.getAllAggregatePfafs( - county.getGid(), "COUNTY"); + pfafArray = templates.getAllAggregatePfafs(county.getGid(), + "COUNTY"); for (Long pfaf : pfafArray) { basinMetaData = templates.getBasin(pfaf); @@ -1552,7 +1557,7 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa updateBasinCountLabel(); } - + /** * Get the basin sort by type that determines how the basin is sorted. * @@ -1704,16 +1709,19 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa * Help menu popup. */ private void callHelpDlg() { - helpDlg = new HelpDlg(shell); + if (helpDlg == null) { + helpDlg = new HelpDlg(shell); + } helpDlg.open(); - } /* * About menu popup */ private void callAboutDlg() { - aboutDlg = new AboutDlg(shell); + if (aboutDlg == null) { + aboutDlg = new AboutDlg(shell); + } aboutDlg.open(); } @@ -1721,7 +1729,9 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa * Acknowledgments menu popup */ private void callAcknowledgmentsDlg() { - acknowledgmentsDlg = new AcknowledgmentsDlg(shell); + if (acknowledgmentsDlg == null) { + acknowledgmentsDlg = new AcknowledgmentsDlg(shell); + } acknowledgmentsDlg.open(); } @@ -1738,7 +1748,7 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa /* * Start the array at one since we never delete the first source * component. Add the correct number of sources. - */ + */ for (int i = 1; i < scdArray.size(); i++) { addNewSource(scdArray.get(i)); } @@ -1772,22 +1782,23 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa displayMessageBox("No Data", sb.toString(), SWT.ICON_WARNING); return; } - + ArrayList> basinList = new ArrayList>(); - for (SourceCompData scd: srcCompData) { + for (SourceCompData scd : srcCompData) { ArrayList list = new ArrayList(); ArrayList dataList = scd.getCountyBasinData(); - for (ValueNameIdData vni: dataList) { + for (ValueNameIdData vni : dataList) { // Get the basins for each county ArrayList pfafs = templates.getAllAggregatePfafs( vni.getId(), "COUNTY"); - for (long pfaf: pfafs) { + for (long pfaf : pfafs) { list.add(new FFFGBasinIdXML(pfaf, vni.getValue())); } } basinList.add(list); } - fdm.saveUpdateUserXML(calculateExpTimeInMillis(), srcCompData, basinList); + fdm.saveUpdateUserXML(calculateExpTimeInMillis(), srcCompData, + basinList); // Update the File name label fileNameLbl.setText(fdm.getUserFileName()); @@ -1824,14 +1835,14 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa } ArrayList> basinList = new ArrayList>(); - for (SourceCompData scd: srcCompData) { + for (SourceCompData scd : srcCompData) { ArrayList list = new ArrayList(); ArrayList dataList = scd.getCountyBasinData(); - for (ValueNameIdData vni: dataList) { + for (ValueNameIdData vni : dataList) { // Get the basins for each county ArrayList pfafs = templates.getAllAggregatePfafs( vni.getId(), "COUNTY"); - for (long pfaf: pfafs) { + for (long pfaf : pfafs) { list.add(new FFFGBasinIdXML(pfaf, vni.getValue())); } } @@ -2101,8 +2112,7 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa } /** - * populate the dialog with the data retrieved - * via FFFGData. + * populate the dialog with the data retrieved via FFFGData. */ private void populateDialog() { populateCountyLists(); @@ -2113,9 +2123,10 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa sc.populateSourceComp(); statusLbl.setText(""); - this.getParent().setCursor( - this.getParent().getDisplay() - .getSystemCursor(SWT.CURSOR_ARROW)); + this.getParent() + .setCursor( + this.getParent().getDisplay() + .getSystemCursor(SWT.CURSOR_ARROW)); } /* @@ -2142,7 +2153,9 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa return false; } - /* (non-Javadoc) + /* + * (non-Javadoc) + * * @see com.raytheon.uf.viz.monitor.ffmp.fffg.IFFFGData#setCounties() */ @Override @@ -2150,7 +2163,9 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa this.counties = counties; } - /* (non-Javadoc) + /* + * (non-Javadoc) + * * @see com.raytheon.uf.viz.monitor.ffmp.fffg.IFFFGData#setTemplates() */ @Override @@ -2158,20 +2173,28 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa this.templates = templates; } - /* (non-Javadoc) - * @see com.raytheon.uf.viz.monitor.ffmp.fffg.IFFFGData#setGuidances(java.util.LinkedHashMap) + /* + * (non-Javadoc) + * + * @see + * com.raytheon.uf.viz.monitor.ffmp.fffg.IFFFGData#setGuidances(java.util + * .LinkedHashMap) */ @Override public void setGuidances( LinkedHashMap guidances) { - this.guidances = guidances; + this.guidances = guidances; } - /* (non-Javadoc) - * @see com.raytheon.uf.viz.monitor.ffmp.fffg.IFFFGData#setDataLoadComplete(boolean) + /* + * (non-Javadoc) + * + * @see + * com.raytheon.uf.viz.monitor.ffmp.fffg.IFFFGData#setDataLoadComplete(boolean + * ) */ @Override - public void dataLoadComplete() { + public void dataLoadComplete() { VizApp.runAsync(new Runnable() { @Override public void run() { @@ -2179,30 +2202,30 @@ public class FFFGDlg extends CaveSWTDialog implements ISourceCompAction, IFFFGDa } }); } - - + /** - * FFFG GUI large font for: - * Text ffgValueTF and Spinner expireTimeSpnr. + * FFFG GUI large font for: Text ffgValueTF and Spinner expireTimeSpnr. * - * @param ctrl: Control to change Font - * @return: large Font + * @param ctrl + * : Control to change Font + * @return: large Font */ - private Font getLargeFont(org.eclipse.swt.widgets.Control ctrl){ - - if(ctrl == null) - return new Font(getDisplay(), new org.eclipse.swt.graphics.FontData()); - - Font font = ctrl.getFont(); - org.eclipse.swt.graphics.FontData[] fontData = font.getFontData(); - - for(int i=0; i + * + * SOFTWARE HISTORY + * + * Date Ticket# Engineer Description + * ------------ ---------- ----------- -------------------------- + * Initial creation + * Nov 29, 2012 1353 rferrel Made dialog non-blocking. + * + * + * + * @author rferrel + * @version 1.0 + */ +public class HelpDlg extends CaveSWTDialog { /** * Create the label object. */ @@ -46,12 +63,13 @@ public class HelpDlg extends CaveSWTDialog{ */ public HelpDlg(Shell parent) { - super(parent); + super(parent, SWT.DIALOG_TRIM, CAVE.DO_NOT_BLOCK); setText("Help for ForcedFFG"); - } + } + /* * (non-Javadoc) - * + * * @see * com.raytheon.viz.ui.dialogs.CaveSWTDialogBase#initializeComponents(org * .eclipse.swt.widgets.Shell) @@ -59,12 +77,12 @@ public class HelpDlg extends CaveSWTDialog{ @Override protected void initializeComponents(final Shell shell) { setReturnValue(false); - + // Initialize layout GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true); gd.widthHint = 400; gd.heightHint = 270; - helpLbl=new Label(shell,SWT.None); + helpLbl = new Label(shell, SWT.None); helpLbl.setLayoutData(gd); // Add a close button @@ -85,32 +103,33 @@ public class HelpDlg extends CaveSWTDialog{ }); populateDlg(); -} - + } + private void populateDlg() { - String helpText = " - To add FFG to counties: Left click on the county name \n"+ - " in the leftmost column and click on the button \n"+ - " 'Add/Update selected County(ies)' \n"+ - " - To add FFG to basins: Left click on the basin name \n"+ - " in the leftmost column and click on the button \n"+ - " 'Add/Update selected Basin(s)' \n"+ - " - To remove FFG from counties: Left click on the county name \n"+ - " in the rightmost column and click on the button \n"+ - " 'Remove County(ies)' \n"+ - " - To remove FFG from basins: Left click on the basin name \n"+ - " in the rightmost column and click on the button \n"+ - " 'Remove Basin(s)' \n"+ - " - Basin value override county value.\n"+ - " - County value override CWA value.\n"+ - " - Visit http://www.nws.noaa.gov/mdl/ffmp/ \n"+ - " for more details."; + String helpText = " - To add FFG to counties: Left click on the county name \n" + + " in the leftmost column and click on the button \n" + + " 'Add/Update selected County(ies)' \n" + + " - To add FFG to basins: Left click on the basin name \n" + + " in the leftmost column and click on the button \n" + + " 'Add/Update selected Basin(s)' \n" + + " - To remove FFG from counties: Left click on the county name \n" + + " in the rightmost column and click on the button \n" + + " 'Remove County(ies)' \n" + + " - To remove FFG from basins: Left click on the basin name \n" + + " in the rightmost column and click on the button \n" + + " 'Remove Basin(s)' \n" + + " - Basin value override county value.\n" + + " - County value override CWA value.\n" + + " - Visit http://www.nws.noaa.gov/mdl/ffmp/ \n" + + " for more details."; this.helpLbl.setText(helpText); this.shell.pack(); - } + } + /* * (non-Javadoc) - * + * * @see com.raytheon.viz.ui.dialogs.CaveSWTDialogBase#disposed() */ @Override @@ -118,4 +137,3 @@ public class HelpDlg extends CaveSWTDialog{ super.disposed(); } } - diff --git a/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/actions/FFFGAction.java b/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/actions/FFFGAction.java index ccb504341c..7103a4afe4 100644 --- a/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/actions/FFFGAction.java +++ b/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/actions/FFFGAction.java @@ -25,7 +25,6 @@ import org.eclipse.core.commands.ExecutionException; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.PlatformUI; -import com.raytheon.uf.viz.core.VizApp; import com.raytheon.uf.viz.monitor.ffmp.fffg.FFFGDlg; /** @@ -38,6 +37,7 @@ import com.raytheon.uf.viz.monitor.ffmp.fffg.FFFGDlg; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * 1/27/09 dhladky Initial Creation. + * 1/29/2012 1353 rferrel Changes for non-blocking FFFGDlg. * * * @@ -50,21 +50,14 @@ public class FFFGAction extends AbstractHandler { @Override public Object execute(ExecutionEvent arg0) throws ExecutionException { - - if (fffgDlg == null) { - - VizApp.runAsync(new Runnable() { - @Override - public void run() { - - Shell fshell = PlatformUI.getWorkbench() - .getActiveWorkbenchWindow().getShell(); - fffgDlg = new FFFGDlg(fshell); - fffgDlg.open(); - fffgDlg = null; - } - }); + // Independent dialog is disposed on close and cannot be reopened. + if (fffgDlg == null || fffgDlg.getShell() == null + || fffgDlg.isDisposed()) { + Shell fshell = PlatformUI.getWorkbench().getActiveWorkbenchWindow() + .getShell(); + fffgDlg = new FFFGDlg(fshell); } + fffgDlg.open(); return null; }