From 2c87ea46b7a98f8696bb857d6d60008e675eecf3 Mon Sep 17 00:00:00 2001 From: Jim Procter Date: Mon, 23 Jan 2017 14:39:31 +0000 Subject: [PATCH] JAL-2349 colour shade computation refactored to annotation row renderer --- src/jalview/renderer/ContactMapRenderer.java | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/jalview/renderer/ContactMapRenderer.java b/src/jalview/renderer/ContactMapRenderer.java index 809ced0..35b73a4 100644 --- a/src/jalview/renderer/ContactMapRenderer.java +++ b/src/jalview/renderer/ContactMapRenderer.java @@ -8,6 +8,7 @@ import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.Annotation; import jalview.datamodel.ColumnSelection; import jalview.datamodel.ContactListI; +import jalview.datamodel.ContactRange; import jalview.renderer.api.AnnotationRowRendererI; import java.awt.Color; @@ -63,7 +64,8 @@ public class ContactMapRenderer implements AnnotationRowRendererI * {profile type, #values, total count, char1, pct1, char2, pct2...} */ ContactListI contacts = viewport.getContactList(_aa, column); - + min = _aa.graphMin; + max = _aa.graphMax; if (contacts == null) { return; @@ -81,7 +83,7 @@ public class ContactMapRenderer implements AnnotationRowRendererI + (contacts.getContactHeight() * (ht - eht) / _aa.graphHeight); // TODO show maximum colour for range - sort of done // also need a 'getMaxPosForRange(start,end)' - g.setColor(contacts.getColorForRange(cstart, cend)); + g.setColor(getColorForRange(contacts, cstart, cend)); if (scale > 1) { @@ -96,4 +98,22 @@ public class ContactMapRenderer implements AnnotationRowRendererI } } + + Color minColor = Color.white, maxColor = Color.magenta; + + float min, max; + + Color shadeFor(float value) + { + return jalview.util.ColorUtils.getGraduatedColour(value, 0, minColor, + max, maxColor); + } + + public Color getColorForRange(ContactListI cl, int i, int j) + { + ContactRange cr = cl.getRangeFor(i, j); + // average for moment - probably more interested in maxIntProj though + return shadeFor((float) cr.getMean()); + } + } -- 1.7.10.2