diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/heatmaps/NumberHeatmapRenderer.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/heatmaps/NumberHeatmapRenderer.java index 3b0564d0fec44d9cd08faccae2f28574d2605cc9..ec562e5b823ad834e2e694bf76a740bd1e313b41 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/heatmaps/NumberHeatmapRenderer.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/heatmaps/NumberHeatmapRenderer.java @@ -15,6 +15,9 @@ import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.d */ class NumberHeatmapRenderer implements IHeatmapRenderer<Float> { + static final String LESS_THAN_EQUAL = "\u2264"; + static final String GREATER_THAN_EQUAL = "\u2265"; + private final float step; private final List<Color> colors; @@ -50,13 +53,23 @@ class NumberHeatmapRenderer implements IHeatmapRenderer<Float> } if (step > 0) { - scaleTop = round(Math.max(until, minMaxRange.getMax())); - scaleBottom = round(Math.min(from, minMaxRange.getMin())); + scaleTop = createScaleEndLabel(until, minMaxRange.getMax(), minMaxRange.getMin()); + scaleBottom = createScaleEndLabel(from, minMaxRange.getMin(), minMaxRange.getMax()); } else { - scaleTop = round(Math.min(until, minMaxRange.getMin())); - scaleBottom = round(Math.max(from, minMaxRange.getMax())); + scaleTop = createScaleEndLabel(until, minMaxRange.getMin(), minMaxRange.getMax()); + scaleBottom = createScaleEndLabel(from, minMaxRange.getMax(), minMaxRange.getMin()); + } + } + + private String createScaleEndLabel(float scaleEnd, float dataEnd, float otherDataEnd) + { + String scaleNumber = round(scaleEnd); + if ((dataEnd - scaleEnd) * (scaleEnd - otherDataEnd) > 0) + { + scaleNumber = (scaleEnd < dataEnd ? GREATER_THAN_EQUAL : LESS_THAN_EQUAL) + " " + scaleNumber; } + return scaleNumber; } @Override diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/heatmaps/NumberHeatmapRendererTest.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/heatmaps/NumberHeatmapRendererTest.java index 7ad61ce28eb7cd80c44e5dc2f9db35375fdd9bf5..85d2c937818dd1925658aa4e07afdc5fc631630c 100644 --- a/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/heatmaps/NumberHeatmapRendererTest.java +++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/heatmaps/NumberHeatmapRendererTest.java @@ -16,6 +16,8 @@ package ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.detailviewers.heatmaps; +import static ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.detailviewers.heatmaps.NumberHeatmapRenderer.GREATER_THAN_EQUAL; +import static ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.detailviewers.heatmaps.NumberHeatmapRenderer.LESS_THAN_EQUAL; import static org.testng.AssertJUnit.assertEquals; import java.util.Arrays; @@ -173,8 +175,8 @@ public class NumberHeatmapRendererTest String firstLabel = renderer.tryGetFirstLabel(); List<HeatmapScaleElement> scale = renderer.calculateScale(); - assertEquals("[3.0:#111, 2.0:#222, 0.0:#333]", scale.toString()); - assertEquals("5.0", firstLabel); + assertEquals("[3.0:#111, 2.0:#222, " + LESS_THAN_EQUAL + " 1.0:#333]", scale.toString()); + assertEquals(GREATER_THAN_EQUAL + " 4.0", firstLabel); } @Test @@ -203,8 +205,8 @@ public class NumberHeatmapRendererTest String firstLabel = renderer.tryGetFirstLabel(); List<HeatmapScaleElement> scale = renderer.calculateScale(); - assertEquals("[2.0:#111, 3.0:#222, 5.0:#333]", scale.toString()); - assertEquals("0.0", firstLabel); + assertEquals("[2.0:#111, 3.0:#222, " + GREATER_THAN_EQUAL + " 4.0:#333" + "]", scale.toString()); + assertEquals(LESS_THAN_EQUAL + " 1.0", firstLabel); } @Test