X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Frenderer%2FScaleRenderer.java;h=82536d4f53aed6280fe490e3044f61bb464e3e05;hb=eedf8b8b6605fa8e77a29f88a09bd08b0468dc64;hp=d91ea745113dcf7d57a5315b09af5123d2dc0b3f;hpb=721eacfd0eb9bfb415c60448b8ec8f24774b196b;p=jalview.git diff --git a/src/jalview/renderer/ScaleRenderer.java b/src/jalview/renderer/ScaleRenderer.java index d91ea74..82536d4 100644 --- a/src/jalview/renderer/ScaleRenderer.java +++ b/src/jalview/renderer/ScaleRenderer.java @@ -34,22 +34,41 @@ import java.util.List; */ public class ScaleRenderer { + public final class ScaleMark + { + public final boolean major; + + public final int column; + + public final String text; + + ScaleMark(boolean isMajor, int col, String txt) + { + major = isMajor; + column = col; + text = txt; + } + } + /** * calculate positions markers on the alignment ruler * - * @return List { Object { .. } } Boolean: true/false for major/minor mark, - * Integer: marker position in alignment column coords, String: null - * or a String to be rendered at the position. + * @param av + * @param startx + * left-most column in visible view + * @param endx + * - right-most column in visible view + * @return List of ScaleMark holding boolean: true/false for major/minor mark, + * marker position in alignment column coords, a String to be rendered + * at the position (or null) */ - public static List calculateMarks(AlignViewportI av, - int startx, int endx) + public List calculateMarks(AlignViewportI av, int startx, + int endx) { - new ArrayList(); - int scalestartx = (startx / 10) * 10; SequenceI refSeq = av.getAlignment().getSeqrep(); - int refSp = 0, refEp = -1, refStart = 0, refEnd = -1, refStartI = 0, refEndI = -1; + int refSp = 0, refStartI = 0, refEndI = -1; if (refSeq != null) { // find bounds and set origin appopriately @@ -58,9 +77,6 @@ public class ScaleRenderer .locateVisibleBoundsOfSequence(refSeq); refSp = refbounds[0]; - refEp = refbounds[1]; - refStart = refbounds[2]; - refEnd = refbounds[3]; refStartI = refbounds[4]; refEndI = refbounds[5]; scalestartx = refSp + ((scalestartx - refSp) / 10) * 10; @@ -70,13 +86,12 @@ public class ScaleRenderer { scalestartx += 5; } - List marks = new ArrayList(); + List marks = new ArrayList(); String string; - int maxX = 0, refN, iadj; + int refN, iadj; // todo: add a 'reference origin column' to set column number relative to for (int i = scalestartx; i < endx; i += 5) { - Object[] amark = new Object[3]; if (((i - refSp) % 10) == 0) { if (refSeq == null) @@ -104,18 +119,12 @@ public class ScaleRenderer string = String.valueOf(refN) + refSeq.getCharAt(iadj); } } - amark[0] = Boolean.TRUE; - amark[1] = Integer.valueOf(i - startx - 1); - amark[2] = string; - + marks.add(new ScaleMark(true, i - startx - 1, string)); } else { - amark[0] = Boolean.FALSE; - amark[1] = Integer.valueOf(i - startx - 1); - amark[2] = null; + marks.add(new ScaleMark(false, i - startx - 1, null)); } - marks.add(amark); } return marks; }