From 98f56ba45738d2cef26a011cfeb12e9149da97c2 Mon Sep 17 00:00:00 2001 From: Roger Ferrel Date: Wed, 17 Oct 2012 08:15:21 -0500 Subject: [PATCH] Issue #1229 Changes for non-blocking SaveColorMapDialog. Change-Id: I5308c5f2ca546c825863f89162f2f1143f0431fc Former-commit-id: 1c4e87e96879b551d63648e55b038470282a3c1e [formerly 086223e76433b63d669f316414c99c610855d196] [formerly 3874545f803dcb6ca00a8d3a25d8f6c9a8e55885 [formerly 5e79024db3b8884b9fcbba16f02e8972af1b53c3]] [formerly 7f3ab5434c29d7c2927d65758349982108f5db7b [formerly 5e79024db3b8884b9fcbba16f02e8972af1b53c3 [formerly b902eadfca48628bf8944d97019263e94618667a]]] Former-commit-id: 7f3ab5434c29d7c2927d65758349982108f5db7b Former-commit-id: a4ad194b03c39475a030ce5186fa0c8dd107d6d7 [formerly f77e146c65b9a82865826ce7c9153f6efc637a0e] Former-commit-id: e4016f2f591ea2e85346d6e659190519c75ecbb0 --- .../dialogs/colordialog/ColorEditDialog.java | 58 ++++++++++++++----- .../colordialog/SaveColorMapDialog.java | 3 +- 2 files changed, 44 insertions(+), 17 deletions(-) diff --git a/cave/com.raytheon.viz.ui/src/com/raytheon/viz/ui/dialogs/colordialog/ColorEditDialog.java b/cave/com.raytheon.viz.ui/src/com/raytheon/viz/ui/dialogs/colordialog/ColorEditDialog.java index f6c1c026fe..4775079360 100644 --- a/cave/com.raytheon.viz.ui/src/com/raytheon/viz/ui/dialogs/colordialog/ColorEditDialog.java +++ b/cave/com.raytheon.viz.ui/src/com/raytheon/viz/ui/dialogs/colordialog/ColorEditDialog.java @@ -63,6 +63,7 @@ import com.raytheon.viz.ui.EditorUtil; import com.raytheon.viz.ui.UiPlugin; import com.raytheon.viz.ui.VizWorkbenchManager; import com.raytheon.viz.ui.dialogs.CaveSWTDialog; +import com.raytheon.viz.ui.dialogs.ICloseCallback; import com.raytheon.viz.ui.editor.IMultiPaneEditor; import com.raytheon.viz.ui.editor.ISelectedPanesChangedListener; @@ -75,6 +76,7 @@ import com.raytheon.viz.ui.editor.ISelectedPanesChangedListener; * ------------ ---------- ----------- -------------------------- * lvenable Initial Creation. * Jul 24, 2007 njensen Hooked into backend. + * Oct 17, 2012 1229 rferrel Changes for non-blocking SaveColorMapDialog. * * * @@ -85,10 +87,10 @@ public class ColorEditDialog extends CaveSWTDialog implements IVizEditorChangedListener, IRenderableDisplayChangedListener, RemoveListener, AddListener, IResourceDataChanged, ISelectedPanesChangedListener, IColorEditCompCallback { - private static final transient IUFStatusHandler statusHandler = UFStatus + private final transient IUFStatusHandler statusHandler = UFStatus .getHandler(ColorEditDialog.class); - private static final String NO_COLOR_TABLE = "No color table is being edited"; + private final String NO_COLOR_TABLE = "No color table is being edited"; private String currentColormapName; @@ -144,6 +146,10 @@ public class ColorEditDialog extends CaveSWTDialog implements private static ColorEditDialog instance = null; + private SaveColorMapDialog officeSaveAsDialog; + + private SaveColorMapDialog saveAsDialog; + public static void openDialog(Shell parent, IDisplayPaneContainer container, AbstractVizResource singleRscToEdit, boolean rightImages, @@ -831,24 +837,44 @@ public class ColorEditDialog extends CaveSWTDialog implements } private void officeSaveAs() { - SaveColorMapDialog saveDialog = new SaveColorMapDialog(shell, - (ColorMap) cap.getColorMapParameters().getColorMap(), true, - currentColormapName); - String newName = (String) saveDialog.open(); - if (newName != null) { - currentColormapName = newName; - completeSave(); + if (mustCreate(officeSaveAsDialog)) { + officeSaveAsDialog = new SaveColorMapDialog(shell, (ColorMap) cap + .getColorMapParameters().getColorMap(), true, + currentColormapName); + officeSaveAsDialog.setCloseCallback(new ICloseCallback() { + + @Override + public void dialogClosed(Object returnValue) { + if (returnValue instanceof String) { + currentColormapName = (String) returnValue; + completeSave(); + } + } + }); + officeSaveAsDialog.open(); + } else { + officeSaveAsDialog.bringToTop(); } } private void saveAs() { - SaveColorMapDialog saveDialog = new SaveColorMapDialog(shell, - (ColorMap) cap.getColorMapParameters().getColorMap(), false, - currentColormapName); - String newName = (String) saveDialog.open(); - if (newName != null) { - currentColormapName = newName; - completeSave(); + if (mustCreate(saveAsDialog)) { + saveAsDialog = new SaveColorMapDialog(shell, (ColorMap) cap + .getColorMapParameters().getColorMap(), false, + currentColormapName); + saveAsDialog.setCloseCallback(new ICloseCallback() { + + @Override + public void dialogClosed(Object returnValue) { + if (returnValue instanceof String) { + currentColormapName = (String) returnValue; + completeSave(); + } + } + }); + saveAsDialog.open(); + } else { + saveAsDialog.bringToTop(); } } diff --git a/cave/com.raytheon.viz.ui/src/com/raytheon/viz/ui/dialogs/colordialog/SaveColorMapDialog.java b/cave/com.raytheon.viz.ui/src/com/raytheon/viz/ui/dialogs/colordialog/SaveColorMapDialog.java index 506c5dffed..d0cf62279d 100644 --- a/cave/com.raytheon.viz.ui/src/com/raytheon/viz/ui/dialogs/colordialog/SaveColorMapDialog.java +++ b/cave/com.raytheon.viz.ui/src/com/raytheon/viz/ui/dialogs/colordialog/SaveColorMapDialog.java @@ -55,6 +55,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * Jul 24, 2007 njensen Initial creation + * Oct 17, 2012 1229 rferrel Dialog is non-blocking. * * * @@ -85,7 +86,7 @@ public class SaveColorMapDialog extends CaveSWTDialog { */ public SaveColorMapDialog(Shell parent, ColorMap aColorMap, boolean aSiteContext, String aCurrentColormapName) { - super(parent); + super(parent, SWT.NONE, CAVE.DO_NOT_BLOCK); colorMapToSave = aColorMap; siteContext = aSiteContext; currentColormapName = new String(aCurrentColormapName == null ? ""