g.translate(0, getScrollOffset());
g.setColor(Color.black);
-
+ SequenceI lastSeqRef = null;
AlignmentAnnotation[] aa = av.getAlignment().getAlignmentAnnotation();
int fontHeight = g.getFont().getSize();
int y = 0;
{
offset += fm.getDescent();
}
-
- x = width - fm.stringWidth(aa[i].label) - 3;
+ String label = aa[i].label;
+ boolean vertBar = false;
+ if (aa[i].sequenceRef != null)
+ {
+ if (aa[i].sequenceRef != lastSeqRef)
+ {
+ label = aa[i].sequenceRef.getName() + " " + label;
+ // TODO record relationship between sequence and this annotation and
+ // display it here
+ }
+ else
+ {
+ vertBar = true;
+ }
+ }
+ x = width - fm.stringWidth(label) - 3;
if (aa[i].graphGroup > -1)
{
}
else
{
- g.drawString(aa[i].label, x, y + offset);
+ if (vertBar)
+ {
+ g.drawLine(20, y + offset, 20, y - aa[i].height);
+ g.drawLine(20, y + offset, x - 20, y + offset);
+
+ }
+ g.drawString(label, x, y + offset);
}
+ lastSeqRef = aa[i].sequenceRef;
}
}
if (!resizePanel && dragEvent != null && aa != null)
{
g.setColor(Color.lightGray);
- g.drawString(aa[selectedRow].label, dragEvent.getX(),
- dragEvent.getY() - getScrollOffset());
+ g.drawString(
+ (aa[selectedRow].sequenceRef == null ? ""
+ : aa[selectedRow].sequenceRef.getName())
+ + aa[selectedRow].label,
+ dragEvent.getX(), dragEvent.getY() - getScrollOffset());
}
if (!av.getWrapAlignment() && ((aa == null) || (aa.length < 1)))