- // stash colors in linked annotation row.
- // doesn't work yet. TESTS!
- int sstart = aa.sequenceRef != null ? aa.sequenceRef.getStart() - 1
- : 0;
- Annotation ae;
- Color gpcol = null;
- int[] seqpos = null;
- for (BitSet gp : colors.keySet())
- {
- gpcol = colors.get(gp);
- for (int p = gp.nextSetBit(0); p >= 0
- && p < Integer.MAX_VALUE; p = gp.nextSetBit(p + 1))
- {
- if (cm instanceof MappableContactMatrixI)
- {
- MappableContactMatrixI mcm = (MappableContactMatrixI) cm;
- seqpos = mcm.getMappedPositionsFor(aa.sequenceRef, p);
- if (seqpos == null)
- {
- // no mapping for this column.
- continue;
- }
- // TODO: handle ranges...
- ae = aa.getAnnotationForPosition(seqpos[0]);
- }
- else
- {
- ae = aa.getAnnotationForPosition(p + sstart);
- }
- if (ae != null)
- {
- ae.colour = gpcol.brighter().darker();
- }
- }
- }