From 13f1ccd923b79406c2bfe6de03ed02b397734cd3 Mon Sep 17 00:00:00 2001 From: Daniel Knowles Date: Tue, 24 Sep 2024 13:40:03 -0400 Subject: [PATCH] File/Product Manager: now supports displaying float wavelengths (needed for PACE OCI) --- .../java/org/esa/snap/rcp/nodes/PNNode.java | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/snap-rcp/src/main/java/org/esa/snap/rcp/nodes/PNNode.java b/snap-rcp/src/main/java/org/esa/snap/rcp/nodes/PNNode.java index cad7e95895..c84b82a87f 100644 --- a/snap-rcp/src/main/java/org/esa/snap/rcp/nodes/PNNode.java +++ b/snap-rcp/src/main/java/org/esa/snap/rcp/nodes/PNNode.java @@ -550,7 +550,14 @@ public B(Band band) { void updateDisplayName(Band band) { super.updateDisplayName(band); if (band.getSpectralWavelength() > 0.0) { - setDisplayName(String.format("%s (%.1f nm)", band.getName(), band.getSpectralWavelength())); + int wavelengthInt = Math.round(band.getSpectralWavelength()); + float wavelengthIntFloat = (float) (wavelengthInt * 1.0); + if (wavelengthIntFloat == band.getSpectralWavelength()) { + setDisplayName(String.format("%s (%.1f nm)", band.getName(), band.getSpectralWavelength())); + } else { + String wavelengthString = Float.toString(band.getSpectralWavelength()); + setDisplayName(band.getName() + " (" + wavelengthString + " nm)"); + } } } @@ -685,6 +692,26 @@ public void setValue(Float newValue) { } ); + if (band.getAngularValue() != Band.ANGULAR_VIEW_NULL_VALUE) { + set.put(new PropertySupport.ReadWrite("angularValue", Float.class, "View Angle", + "The view angle") { + @Override + public Float getValue() { + return band.getAngularValue(); + } + + @Override + public void setValue(Float newValue) { + float oldValue = band.getAngularValue(); + performUndoableProductNodeEdit("Edit Angular Value", + band, + node -> node.setAngularValue(newValue), + node -> node.setAngularValue(oldValue)); + } + } + + ); + } Property ancillaryVariables = new PropertySupport.ReadWrite("ancillaryVariables", RasterDataNode[].class, "Ancillary Variables", @@ -753,6 +780,8 @@ private String createToolTip(final Band band) { if (band.getSpectralBandwidth() > 0.0) { append(tooltip, String.format("+/-%s nm", 0.5 * band.getSpectralBandwidth())); } + } else if (band.getDate() != null) { + append(tooltip, String.format("%s", band.getDate())); } append(tooltip, String.format("%d x %d pixels", band.getRasterWidth(), band.getRasterHeight())); if (band instanceof VirtualBand) {