VLab Issue #6222. Ensemble Tool Feature: 14.4.1 cosmetic and bug fix; fixes #6222

Change-Id: I0af8db16244969e80ed81b82e83544bb94188387

Former-commit-id: 026366fc59 [formerly 252765c247 [formerly 0235002dc0] [formerly 026366fc59 [formerly 24dee8480063cf90e5c261e848d9cbcddf6b9459]]]
Former-commit-id: 252765c247 [formerly 0235002dc0]
Former-commit-id: 252765c247
Former-commit-id: ae1bab442d
This commit is contained in:
Evan Polster 2015-01-28 23:29:26 +00:00
parent 01022c7e41
commit 944e7a5025
3 changed files with 73 additions and 94 deletions

View file

@ -7,7 +7,7 @@
point="org.eclipse.ui.commands"> point="org.eclipse.ui.commands">
<command <command
id="gov.noaa.gsd.viz.ensemble.activate.layer" id="gov.noaa.gsd.viz.ensemble.activate.layer"
name="Ensembles Tool"> name="Ensemble Tool">
</command> </command>
</extension> </extension>
@ -35,9 +35,9 @@
commandId="gov.noaa.gsd.viz.ensemble.activate.layer" commandId="gov.noaa.gsd.viz.ensemble.activate.layer"
icon="icons/EnsembleTool.gif" icon="icons/EnsembleTool.gif"
id="gov.noaa.gsd.viz.ensemble.tool.viewer" id="gov.noaa.gsd.viz.ensemble.tool.viewer"
label="Ensembles" label="Ensemble Tool"
style="push" style="push"
tooltip="Ensemble Tools"> tooltip="Ensemble Tool">
</command> </command>
<separator <separator
name="gov.noaa.gsd.viz.ensemble.separator_post" name="gov.noaa.gsd.viz.ensemble.separator_post"

View file

@ -24,8 +24,8 @@ public enum Calculation {
COMBINED_ENS_REL_FREQ("Combined ERF"), // COMBINED_ENS_REL_FREQ("Combined ERF"), //
DIFFERENCE("Diff"), // DIFFERENCE("Diff"), //
ENSEMBLE_RELATIVE_FREQUENCY("Ens Rel Freq"), // ENSEMBLE_RELATIVE_FREQUENCY("Ens Rel Freq"), //
HISTOGRAM_SAMPLING("Histogram sampling"), // HISTOGRAM_SAMPLING("Sampling"), //
HISTOGRAM_TEXT("Histogram text"), // HISTOGRAM_TEXT("Histogram Sampling"), //
MAX("Max"), // MAX("Max"), //
MEAN("Mean"), // MEAN("Mean"), //
MIN("Min"), // MIN("Min"), //

View file

@ -30,7 +30,6 @@ import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.jface.action.IMenuListener; import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ColumnLabelProvider; import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.ITreeContentProvider;
@ -40,6 +39,7 @@ import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.TreeViewerColumn; import org.eclipse.jface.viewers.TreeViewerColumn;
import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerSorter; import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.SWT; import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem; import org.eclipse.swt.custom.CTabItem;
@ -267,7 +267,7 @@ public class EnsembleToolViewer extends ViewPart implements IRefreshListener {
private Cursor selectionModeCursor = null; private Cursor selectionModeCursor = null;
private Cursor toggleVisibilityModeCursor = null; private Cursor normalCursor = null;
private Cursor waitCursor = null; private Cursor waitCursor = null;
@ -447,13 +447,13 @@ public class EnsembleToolViewer extends ViewPart implements IRefreshListener {
selectionModeCursor = owner.getDisplay().getSystemCursor( selectionModeCursor = owner.getDisplay().getSystemCursor(
SWT.CURSOR_HAND); SWT.CURSOR_HAND);
toggleVisibilityModeCursor = owner.getDisplay().getSystemCursor( normalCursor = owner.getDisplay().getSystemCursor(SWT.CURSOR_ARROW);
SWT.CURSOR_ARROW);
waitCursor = owner.getDisplay().getSystemCursor(SWT.CURSOR_WAIT); waitCursor = owner.getDisplay().getSystemCursor(SWT.CURSOR_WAIT);
ensembleTree.addKeyListener(new EnsembleTreeKeyListener()); ensembleTree.addKeyListener(new EnsembleTreeKeyListener());
ensembleTree.setCursor(toggleVisibilityModeCursor);
updateCursor(normalCursor);
} }
@ -1524,7 +1524,7 @@ public class EnsembleToolViewer extends ViewPart implements IRefreshListener {
if ((e.keyCode & SWT.CTRL) == SWT.CTRL) { if ((e.keyCode & SWT.CTRL) == SWT.CTRL) {
CTRL_KEY_DEPRESSED = true; CTRL_KEY_DEPRESSED = true;
ensembleTree.setCursor(selectionModeCursor); updateCursor(selectionModeCursor);
} }
} }
@ -1533,7 +1533,7 @@ public class EnsembleToolViewer extends ViewPart implements IRefreshListener {
if ((e.keyCode & SWT.CTRL) == SWT.CTRL) { if ((e.keyCode & SWT.CTRL) == SWT.CTRL) {
CTRL_KEY_DEPRESSED = false; CTRL_KEY_DEPRESSED = false;
ensembleTree.setCursor(toggleVisibilityModeCursor); updateCursor(normalCursor);
} }
} }
@ -1554,7 +1554,7 @@ public class EnsembleToolViewer extends ViewPart implements IRefreshListener {
// menu for either ensemble products or // menu for either ensemble products or
// individual grid products ... // individual grid products ...
// if the enesemble tool isn't open then ignore // if the ensemble tool isn't open then ignore
// user mouse clicks ... // user mouse clicks ...
if (!EnsembleToolManager.getInstance().isReady()) { if (!EnsembleToolManager.getInstance().isReady()) {
return; return;
@ -1600,17 +1600,14 @@ public class EnsembleToolViewer extends ViewPart implements IRefreshListener {
public void handleEvent(Event event) { public void handleEvent(Event event) {
final Cursor currCursor = ensembleTree
.getCursor();
VizApp.runAsync(new Runnable() { VizApp.runAsync(new Runnable() {
@Override @Override
public void run() { public void run() {
ensembleTree.setCursor(waitCursor); updateCursor(waitCursor);
startAddERFLayer(mousedEnsembleName); startAddERFLayer(mousedEnsembleName);
ensembleTree.setCursor(currCursor); updateCursor(normalCursor);
} }
}); });
@ -1632,17 +1629,14 @@ public class EnsembleToolViewer extends ViewPart implements IRefreshListener {
new Listener() { new Listener() {
public void handleEvent(Event event) { public void handleEvent(Event event) {
final Cursor currCursor = ensembleTree
.getCursor();
VizApp.runAsync(new Runnable() { VizApp.runAsync(new Runnable() {
@Override @Override
public void run() { public void run() {
ensembleTree.setCursor(waitCursor); updateCursor(waitCursor);
updateColorsOnResource(mousedEnsembleName); updateColorsOnResource(mousedEnsembleName);
ensembleTree.setCursor(currCursor); updateCursor(normalCursor);
} }
}); });
@ -1666,21 +1660,16 @@ public class EnsembleToolViewer extends ViewPart implements IRefreshListener {
if (proceed) { if (proceed) {
final Cursor currCursor = ensembleTree
.getCursor();
VizApp.runAsync(new Runnable() { VizApp.runAsync(new Runnable() {
@Override @Override
public void run() { public void run() {
ensembleTree updateCursor(waitCursor);
.setCursor(waitCursor);
EnsembleToolManager EnsembleToolManager
.getInstance() .getInstance()
.unloadResourcesByName( .unloadResourcesByName(
item.getText()); item.getText());
ensembleTree updateCursor(normalCursor);
.setCursor(currCursor);
} }
}); });
@ -1699,19 +1688,16 @@ public class EnsembleToolViewer extends ViewPart implements IRefreshListener {
public void handleEvent(Event event) { public void handleEvent(Event event) {
final Cursor currCursor = ensembleTree
.getCursor();
VizApp.runAsync(new Runnable() { VizApp.runAsync(new Runnable() {
@Override @Override
public void run() { public void run() {
ensembleTree.setCursor(waitCursor); updateCursor(waitCursor);
setItemVisible(item, setItemVisible(item,
toggleVisibilityMenuItem toggleVisibilityMenuItem
.getSelection()); .getSelection());
ensembleTree.setCursor(currCursor); updateCursor(normalCursor);
} }
}); });
@ -1977,21 +1963,19 @@ public class EnsembleToolViewer extends ViewPart implements IRefreshListener {
// of all the resources in one ensemble // of all the resources in one ensemble
} else if (mousedItem instanceof GenericResourceHolder) { } else if (mousedItem instanceof GenericResourceHolder) {
final Cursor currCursor = ensembleTree.getCursor();
VizApp.runAsync(new Runnable() { VizApp.runAsync(new Runnable() {
@Override @Override
public void run() { public void run() {
ensembleTree.setCursor(waitCursor); updateCursor(waitCursor);
toggleItemVisible(userClickedTreeItem); toggleItemVisible(userClickedTreeItem);
// if this was the last item to be toggled off, // if this was the last item to be toggled off,
// for example, in an ensemble group, then you // for example, in an ensemble group, then you
// need to toggle the parent tree item off also // need to toggle the parent tree item off also
matchParentToChildrenVisibility(userClickedTreeItem); matchParentToChildrenVisibility(userClickedTreeItem);
ensembleTree.setCursor(currCursor); updateCursor(normalCursor);
} }
}); });
@ -2014,12 +1998,11 @@ public class EnsembleToolViewer extends ViewPart implements IRefreshListener {
final List<GenericResourceHolder> children = getEnsembleMemberGenericResources(ensembleName); final List<GenericResourceHolder> children = getEnsembleMemberGenericResources(ensembleName);
// TODO: poor-man's way of knowing what type of flavor this ensemble is // TODO: poor-man's way of knowing what type of flavor this ensemble is
if (ensembleName.toLowerCase().indexOf("gfsensemble") >= 0) { if ((ensembleName.indexOf("GEFS") >= 0)
|| (ensembleName.indexOf("GFS Ensemble") >= 0)) {
updateGEFSEnsembleColors(ensembleName, children); updateGEFSEnsembleColors(ensembleName, children);
} else if (ensembleName.toLowerCase().indexOf("sref") >= 0) { } else if (ensembleName.indexOf("SREF") >= 0) {
updateSREFColors(ensembleName, children); updateSREFColors(ensembleName, children);
} else {
return;
} }
} }
@ -2027,40 +2010,35 @@ public class EnsembleToolViewer extends ViewPart implements IRefreshListener {
private void updateSREFColors(String ensembleName, private void updateSREFColors(String ensembleName,
final List<GenericResourceHolder> children) { final List<GenericResourceHolder> children) {
final Cursor currCursor = ensembleTree.getCursor(); VizApp.runSync(new Runnable() {
VizApp.runAsync(new Runnable() {
@Override @Override
public void run() { public void run() {
ensembleTree.setCursor(waitCursor); updateCursor(waitCursor);
EnsembleSREFColorChooser cd = new EnsembleSREFColorChooser( EnsembleSREFColorChooser cd = new EnsembleSREFColorChooser(
owner.getShell()); owner.getShell());
cd.create(); cd.setBlockOnOpen(true);
int result = cd.open(); if (cd.open() == Window.OK) {
if (result != IDialogConstants.OK_ID) { Color currColor = null;
return; for (GenericResourceHolder gRsc : children) {
} if (gRsc instanceof GridResourceHolder) {
AbstractVizResource<?, ?> rsc = gRsc.getRsc();
Color currColor = null; String ensId = gRsc.getEnsembleIdRaw();
for (GenericResourceHolder gRsc : children) { if ((ensId != null) && (ensId.length() > 1)) {
if (gRsc instanceof GridResourceHolder) { currColor = ChosenSREFColors.getInstance()
AbstractVizResource<?, ?> rsc = gRsc.getRsc(); .getGradientByEnsembleId(ensId);
String ensId = gRsc.getEnsembleIdRaw(); rsc.getCapability(ColorableCapability.class)
if ((ensId != null) && (ensId.length() > 1)) { .setColor(currColor.getRGB());
currColor = ChosenSREFColors.getInstance() rsc.issueRefresh();
.getGradientByEnsembleId(ensId); }
rsc.getCapability(ColorableCapability.class)
.setColor(currColor.getRGB());
rsc.issueRefresh();
} }
} }
ensemblesTreeViewer.refresh();
} }
ensemblesTreeViewer.refresh();
ensembleTree.setCursor(currCursor); updateCursor(normalCursor);
} }
}); });
@ -2070,46 +2048,43 @@ public class EnsembleToolViewer extends ViewPart implements IRefreshListener {
private void updateGEFSEnsembleColors(String ensembleName, private void updateGEFSEnsembleColors(String ensembleName,
final List<GenericResourceHolder> children) { final List<GenericResourceHolder> children) {
final Cursor currCursor = ensembleTree.getCursor(); VizApp.runSync(new Runnable() {
VizApp.runAsync(new Runnable() {
@Override @Override
public void run() { public void run() {
ensembleTree.setCursor(waitCursor); updateCursor(waitCursor);
EnsembleGEFSColorChooser cd = new EnsembleGEFSColorChooser( EnsembleGEFSColorChooser cd = new EnsembleGEFSColorChooser(
owner.getShell()); owner.getShell());
cd.create(); cd.setBlockOnOpen(true);
int result = cd.open(); if (cd.open() == Window.OK) {
if (result != IDialogConstants.OK_ID) {
return;
}
Color currColor = null; // EditorUtil.getActiveEditor().
int count = 0; Color currColor = null;
for (GenericResourceHolder gRsc : children) { int count = 0;
if (gRsc instanceof GridResourceHolder) { for (GenericResourceHolder gRsc : children) {
count++; if (gRsc instanceof GridResourceHolder) {
AbstractVizResource<?, ?> rsc = gRsc.getRsc(); count++;
if (count == 1) { AbstractVizResource<?, ?> rsc = gRsc.getRsc();
currentEnsembleRsc = rsc; if (count == 1) {
} currentEnsembleRsc = rsc;
String ensId = gRsc.getEnsembleIdRaw(); }
if ((ensId != null) && (ensId.length() > 1)) { String ensId = gRsc.getEnsembleIdRaw();
currColor = ChosenGEFSColors.getInstance() if ((ensId != null) && (ensId.length() > 1)) {
.getGradientByEnsembleId(ensId); currColor = ChosenGEFSColors.getInstance()
rsc.getCapability(ColorableCapability.class) .getGradientByEnsembleId(ensId);
.setColor(currColor.getRGB()); rsc.getCapability(ColorableCapability.class)
rsc.getCapability(OutlineCapability.class); .setColor(currColor.getRGB());
rsc.issueRefresh(); rsc.getCapability(OutlineCapability.class);
rsc.issueRefresh();
}
} }
} }
ensemblesTreeViewer.refresh();
} }
ensemblesTreeViewer.refresh();
ensembleTree.setCursor(currCursor); updateCursor(normalCursor);
} }
}); });
@ -3516,4 +3491,8 @@ public class EnsembleToolViewer extends ViewPart implements IRefreshListener {
} }
} }
private void updateCursor(Cursor c) {
ensembleTree.setCursor(c);
}
} }