X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Frenderer%2FScaleRenderer.java;h=f3155c71960e2ccb3d27df0207f026cc696ed55c;hb=0c83c631f7d7db0baad3335805c15dd40c0aed59;hp=82536d4f53aed6280fe490e3044f61bb464e3e05;hpb=853624fb32058cccc544ae7d13af6ad4b0800b6c;p=jalview.git diff --git a/src/jalview/renderer/ScaleRenderer.java b/src/jalview/renderer/ScaleRenderer.java index 82536d4..f3155c7 100644 --- a/src/jalview/renderer/ScaleRenderer.java +++ b/src/jalview/renderer/ScaleRenderer.java @@ -34,12 +34,24 @@ import java.util.List; */ public class ScaleRenderer { + /** + * Represents one major or minor scale mark + */ public final class ScaleMark { + /** + * true for a major scale mark, false for minor + */ public final boolean major; + /** + * visible column position (0..) e.g. 19 + */ public final int column; + /** + * text (if any) to show e.g. "20" + */ public final String text; ScaleMark(boolean isMajor, int col, String txt) @@ -68,17 +80,23 @@ public class ScaleRenderer int scalestartx = (startx / 10) * 10; SequenceI refSeq = av.getAlignment().getSeqrep(); - int refSp = 0, refStartI = 0, refEndI = -1; + int refSp = 0; + int refStartI = 0; + int refEndI = -1; if (refSeq != null) { - // find bounds and set origin appopriately + // find bounds and set origin appropriately // locate first visible position for this sequence - int[] refbounds = av.getColumnSelection() - .locateVisibleBoundsOfSequence(refSeq); + refSp = av.getAlignment().getHiddenColumns() + .locateVisibleStartOfSequence(refSeq); + + refStartI = refSeq.findIndex(refSeq.getStart()) - 1; + + int seqlength = refSeq.getLength(); + // get sequence position past the end of the sequence + int pastEndPos = refSeq.findPosition(seqlength + 1); + refEndI = refSeq.findIndex(pastEndPos - 1) - 1; - refSp = refbounds[0]; - refStartI = refbounds[4]; - refEndI = refbounds[5]; scalestartx = refSp + ((scalestartx - refSp) / 10) * 10; } @@ -86,7 +104,7 @@ public class ScaleRenderer { scalestartx += 5; } - List marks = new ArrayList(); + List marks = new ArrayList<>(); String string; int refN, iadj; // todo: add a 'reference origin column' to set column number relative to @@ -96,12 +114,14 @@ public class ScaleRenderer { if (refSeq == null) { - iadj = av.getColumnSelection().adjustForHiddenColumns(i - 1) + 1; + iadj = av.getAlignment().getHiddenColumns() + .adjustForHiddenColumns(i - 1) + 1; string = String.valueOf(iadj); } else { - iadj = av.getColumnSelection().adjustForHiddenColumns(i - 1); + iadj = av.getAlignment().getHiddenColumns() + .adjustForHiddenColumns(i - 1); refN = refSeq.findPosition(iadj); // TODO show bounds if position is a gap // - ie L--R -> "1L|2R" for