Issues #1229 Changes for non-blocking ColormapDialog.

Change-Id: I95126e4d7e0b450e014764c96caf93cdff9c2d8d

Former-commit-id: 8e86f32714 [formerly 88476b683c5c480395edacd2920e32a0589a92e5]
Former-commit-id: 6833c7e04c
This commit is contained in:
Roger Ferrel 2012-10-17 10:20:18 -05:00
parent 6199f7f516
commit d5acf40cc2
3 changed files with 82 additions and 28 deletions

View file

@ -27,6 +27,7 @@ import com.raytheon.uf.viz.core.rsc.capabilities.ColorMapCapability;
import com.raytheon.viz.gfe.core.parm.Parm;
import com.raytheon.viz.ui.cmenu.AbstractRightClickAction;
import com.raytheon.viz.ui.dialogs.ColormapDialog;
import com.raytheon.viz.ui.dialogs.ICloseCallback;
/**
* Action for right click menu for changing range of color map values.
@ -38,6 +39,7 @@ import com.raytheon.viz.ui.dialogs.ColormapDialog;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Feb 2, 2011 7999 dgilling Initial creation
* Oct 17, 2012 1229 rferrel Changes for non-blocking ColormapDialog.
*
* </pre>
*
@ -49,6 +51,8 @@ public class ChangeColorMapRangeAction extends AbstractRightClickAction {
private Parm parm;
private ColormapDialog colorMapDlg;
public ChangeColorMapRangeAction(Parm parm) {
super("Set Range...");
this.parm = parm;
@ -61,21 +65,42 @@ public class ChangeColorMapRangeAction extends AbstractRightClickAction {
*/
@Override
public void run() {
Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getShell();
ColorMapCapability cap = getSelectedRsc().getCapability(
ColorMapCapability.class);
IColorMap prevColorMap = cap.getColorMapParameters().getColorMap();
float prevMax = cap.getColorMapParameters().getColorMapMax();
float prevMin = cap.getColorMapParameters().getColorMapMin();
if (colorMapDlg == null || colorMapDlg.getShell() == null
|| colorMapDlg.isDisposed()) {
Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getShell();
ColorMapCapability cap = getSelectedRsc().getCapability(
ColorMapCapability.class);
final IColorMap prevColorMap = cap.getColorMapParameters()
.getColorMap();
final float prevMax = cap.getColorMapParameters().getColorMapMax();
final float prevMin = cap.getColorMapParameters().getColorMapMin();
ColormapDialog cmd = new ColormapDialog(shell, "Set Color Table Range",
cap, parm.getGridInfo().getPrecision());
if (cmd.open() != ColormapDialog.OK) {
cap.getColorMapParameters().setColorMap(prevColorMap);
cap.getColorMapParameters().setColorMapMax(prevMax);
cap.getColorMapParameters().setColorMapMin(prevMin);
cap.notifyResources();
colorMapDlg = new ColormapDialog(shell, "Set Color Table Range",
cap, parm.getGridInfo().getPrecision());
colorMapDlg.setBlockOnOpen(false);
colorMapDlg.setCloseCallback(new ICloseCallback() {
@Override
public void dialogClosed(Object returnValue) {
if (returnValue instanceof Integer) {
int status = (Integer) returnValue;
if (status != ColormapDialog.OK) {
ColorMapCapability cap = colorMapDlg
.getColorMapCapability();
cap.getColorMapParameters().setColorMap(
prevColorMap);
cap.getColorMapParameters().setColorMapMax(prevMax);
cap.getColorMapParameters().setColorMapMin(prevMin);
cap.notifyResources();
}
}
colorMapDlg = null;
}
});
colorMapDlg.open();
} else {
colorMapDlg.bringToTop();
}
}
}

View file

@ -26,6 +26,7 @@ import org.eclipse.ui.PlatformUI;
import com.raytheon.uf.common.colormap.IColorMap;
import com.raytheon.uf.viz.core.rsc.capabilities.ColorMapCapability;
import com.raytheon.viz.ui.dialogs.ColormapDialog;
import com.raytheon.viz.ui.dialogs.ICloseCallback;
/**
*
@ -38,6 +39,7 @@ import com.raytheon.viz.ui.dialogs.ColormapDialog;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jul 24, 2007 chammack Initial Creation.
* Oct 17, 2012 1229 rferrel Changes for non-blocking ColormapDialog.
*
* </pre>
*
@ -45,6 +47,8 @@ import com.raytheon.viz.ui.dialogs.ColormapDialog;
* @version 1
*/
public class ChangeColorMapAction extends AbstractRightClickAction {
private ColormapDialog colorMapDlg;
public ChangeColorMapAction() {
super("Change Colormap...");
}
@ -60,21 +64,42 @@ public class ChangeColorMapAction extends AbstractRightClickAction {
*/
@Override
public void run() {
Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getShell();
ColorMapCapability cap = getSelectedRsc().getCapability(
ColorMapCapability.class);
IColorMap prevColorMap = cap.getColorMapParameters().getColorMap();
float prevMax = cap.getColorMapParameters().getColorMapMax();
float prevMin = cap.getColorMapParameters().getColorMapMin();
ColormapDialog cmd = new ColormapDialog(shell, "Set Color Table Range",
cap);
if (cmd.open() != ColormapDialog.OK) {
cap.getColorMapParameters().setColorMap(prevColorMap);
cap.getColorMapParameters().setColorMapMax(prevMax);
cap.getColorMapParameters().setColorMapMin(prevMin);
cap.notifyResources();
if (colorMapDlg == null || colorMapDlg.getShell() == null
|| colorMapDlg.isDisposed()) {
Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getShell();
ColorMapCapability cap = getSelectedRsc().getCapability(
ColorMapCapability.class);
final IColorMap prevColorMap = cap.getColorMapParameters()
.getColorMap();
final float prevMax = cap.getColorMapParameters().getColorMapMax();
final float prevMin = cap.getColorMapParameters().getColorMapMin();
colorMapDlg = new ColormapDialog(shell, "Set Color Table Range",
cap);
colorMapDlg.setBlockOnOpen(false);
colorMapDlg.setCloseCallback(new ICloseCallback() {
@Override
public void dialogClosed(Object returnValue) {
if (returnValue instanceof Integer) {
int status = (Integer) returnValue;
if (status != ColormapDialog.OK) {
ColorMapCapability cap = colorMapDlg
.getColorMapCapability();
cap.getColorMapParameters().setColorMap(
prevColorMap);
cap.getColorMapParameters().setColorMapMax(prevMax);
cap.getColorMapParameters().setColorMapMin(prevMin);
cap.notifyResources();
}
}
colorMapDlg = null;
}
});
colorMapDlg.open();
} else {
colorMapDlg.bringToTop();
}
}
}

View file

@ -45,6 +45,7 @@ import com.raytheon.uf.viz.core.rsc.capabilities.ColorMapCapability;
* Feb 5, 2007 chammack Initial Creation.
* Aug 20, 2008 dglazesk Updated for the new ColorMap interface
* Oct 31, 2010 ryu use Text widgets for alternative entry
* Oct 17, 2016 1229 rferrel Changes to allow non-blocking dialog.
*
* </pre>
*
@ -165,4 +166,7 @@ public class ColormapDialog extends CaveJFACEDialog {
super.cancelPressed();
}
public ColorMapCapability getColorMapCapability() {
return cap;
}
}