X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Frenderer%2FContactMapRenderer.java;h=04711458332fe89efcb67693caa501975f56af66;hb=1624d4fc89f17c4a6cdb80b7d4cc37a095b6fe67;hp=ef95360f8a91d6ea265330bc1780370436bcf4df;hpb=80b889f0cca49103e1b20ed806755a0719789906;p=jalview.git diff --git a/src/jalview/renderer/ContactMapRenderer.java b/src/jalview/renderer/ContactMapRenderer.java index ef95360..0471145 100644 --- a/src/jalview/renderer/ContactMapRenderer.java +++ b/src/jalview/renderer/ContactMapRenderer.java @@ -35,12 +35,10 @@ public abstract class ContactMapRenderer implements AnnotationRowRendererI * shown when no data available from map */ Color no_data; - /** * shown for region not currently visible - should normally not see this */ Color hidden; - /** * linear shading scheme min/max */ @@ -104,19 +102,20 @@ public abstract class ContactMapRenderer implements AnnotationRowRendererI HiddenColumns hiddenColumns, ColumnSelection columnSelection, AlignmentAnnotation _aa, Annotation[] aa_annotations, int sRes, int eRes, float min, float max, int y) - { + { if (sRes > aa_annotations.length) { return; } eRes = Math.min(eRes, aa_annotations.length); - int x = 0, y2 = y; - - g.setColor(shade.no_data); - - g.drawLine(x, y2, (eRes - sRes) * charWidth, y2); + int x = 0, topY = y; + // uncomment below to render whole area of matrix as pink + // g.setColor(shade.no_data); + // g.fillRect(x, topY-_aa.height, (eRes - sRes) * charWidth, _aa.graphHeight); + + boolean showGroups = _aa.isShowGroupsForContactMatrix(); int column; int aaMax = aa_annotations.length - 1; ContactMatrixI cm = viewport.getContactMatrix(_aa); @@ -153,7 +152,6 @@ public abstract class ContactMapRenderer implements AnnotationRowRendererI // ContactListI from viewport can map column -> group Color gpcol = (cm == null) ? Color.white : contacts.getColourForGroup(); // cm.getColourForGroup(cm.getGroupsFor(column)); - // feature still in development - highlight or omit regions hidden in // the alignment - currently marks them as red rows boolean maskHiddenCols = false; @@ -168,12 +166,11 @@ public abstract class ContactMapRenderer implements AnnotationRowRendererI final ContactGeometry cgeom = new ContactGeometry(contacts, _aa.graphHeight); - for (int ht = y2, eht = y2 - - _aa.graphHeight; ht >= eht; ht -= cgeom.pixels_step) + for (int ht = 0, botY = topY + - _aa.height; ht < _aa.graphHeight; ht += cgeom.pixels_step) { - - ContactGeometry.contactInterval ci = cgeom.mapFor(y2 - ht, - y2 - ht + cgeom.pixels_step); + ContactGeometry.contactInterval ci = cgeom.mapFor(ht, + ht + cgeom.pixels_step); // cstart = (int) Math.floor(((double) y2 - ht) * contacts_per_pixel); // cend = (int) Math.min(contact_height, // Math.ceil(cstart + contacts_per_pixel * pixels_step)); @@ -208,7 +205,7 @@ public abstract class ContactMapRenderer implements AnnotationRowRendererI { col = shade.hidden; } - if (gpcol != null && gpcol != Color.white) + if (showGroups && gpcol != null && gpcol != Color.white) { // todo - could overlay group as a transparent rectangle ? col = new Color( @@ -218,14 +215,13 @@ public abstract class ContactMapRenderer implements AnnotationRowRendererI (int) (((float) (col.getBlue() + gpcol.getBlue())) / 2f)); } g.setColor(col); - if (cgeom.pixels_step > 1) { - g.fillRect(x * charWidth, ht, charWidth, 1 + cgeom.pixels_step); + g.fillRect(x * charWidth, botY+ht, charWidth, 1 + cgeom.pixels_step); } else { - g.drawLine(x * charWidth, ht, (x + 1) * charWidth, ht); + g.drawLine(x * charWidth, botY+ht, (x + 1) * charWidth, botY+ht); } } x++;