- // find bounds and set origin appopriately
- // locate first visible position for this sequence
- int[] refbounds = av.getColumnSelection()
- .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;
- }
-
-
- if (refSeq == null && scalestartx % 10 == 0)
- {
- scalestartx += 5;
- }
- List<Object[]> marks = new ArrayList<Object[]>();
- String string;
- int maxX = 0, 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)
- {
- iadj = av.getColumnSelection().adjustForHiddenColumns(i - 1) + 1;
- string = String.valueOf(iadj);
- }
- else
- {
- iadj = av.getColumnSelection().adjustForHiddenColumns(i - 1);
- refN = refSeq.findPosition(iadj);
- // TODO show bounds if position is a gap
- // - ie L--R -> "1L|2R" for
- // marker
- if (iadj < refStartI)
- {
- string = String.valueOf(iadj - refStartI);
- }
- else if (iadj > refEndI)
- {
- string = "+" + String.valueOf(iadj - refEndI);
- }
- else
- {
- string = String.valueOf(refN) + refSeq.getCharAt(iadj);
- }
- }
- amark[0] = Boolean.TRUE;
- amark[1] = Integer.valueOf(i - startx - 1);
- amark[2] = string;
-
- }
- else
- {
- amark[0] = Boolean.FALSE;
- amark[1] = Integer.valueOf(i - startx - 1);
- amark[2] = null;
- }
- marks.add(amark);