X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Frenderer%2FContactMapRenderer.java;h=a8f6c1b0644fbf4d2c5a1c96d0a7e6675cb8747f;hb=beb2fee66dde629e3bbb7febb38d0116e1a64df2;hp=cbc4af93dd25768be4bf548dcfd27da445411b43;hpb=4b7d3640209c4434d569c746672cf9eed4250ace;p=jalview.git diff --git a/src/jalview/renderer/ContactMapRenderer.java b/src/jalview/renderer/ContactMapRenderer.java index cbc4af9..a8f6c1b 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 */ @@ -150,14 +148,20 @@ public abstract class ContactMapRenderer implements AnnotationRowRendererI x++; continue; } + // ContactListI from viewport can map column -> group Color gpcol = (cm == null) ? Color.white - : cm.getColourForGroup(cm.getGroupsFor(column)); + : 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; - // TODO: pass visible column mask to the ContactGeometry object so it maps + // TODO: optionally pass visible column mask to the ContactGeometry object + // so it maps // only visible contacts to geometry // Bean holding mapping from contact list to pixels + // TODO: allow bracketing/limiting of range on contacts to render (like + // visible column mask but more flexible?) + + // COntactListI provides mapping for column -> cm-groupmapping final ContactGeometry cgeom = new ContactGeometry(contacts, _aa.graphHeight); @@ -174,29 +178,8 @@ public abstract class ContactMapRenderer implements AnnotationRowRendererI boolean rowsel = false, containsHidden = false; if (columnSelection != null) { - if (_aa.sequenceRef == null) - { - rowsel = columnSelection.intersects(ci.cStart, ci.cEnd); - } - else - { - // TODO check we have correctly mapped cstart to local sequence - // numbering - int s = _aa.sequenceRef.findIndex(ci.cStart); - int e = _aa.sequenceRef.findIndex(ci.cEnd); - if (maskHiddenCols && hasHiddenColumns) - { - // TODO: turn into function and create test !! - Iterator viscont = hiddenColumns - .getVisContigsIterator(s, e, false); - containsHidden = !viscont.hasNext(); - } - if (s > 0 && s < _aa.sequenceRef.getLength()) - { - rowsel = columnSelection.intersects(s, e); - } - - } + rowsel = cgeom.intersects(ci, columnSelection, hiddenColumns, + maskHiddenCols); } // TODO: show selected region if (colsel || rowsel) @@ -231,7 +214,6 @@ 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);