- SeqPanel sp = alignPanel.seqPanel;
- int seq = Math.max(0, sp.findSeq(e));
- if (seq > -1 && seq < av.getAlignment().getHeight())
- {
- SequenceI sequence = av.getAlignment().getSequenceAt(seq);
- StringBuffer tip = new StringBuffer(64);
- seqAnnotReport
- .createSequenceAnnotationReport(tip, sequence,
- av.isShowDbRefs(), av.isShowNpFeats(),
- sp.seqCanvas.fr.minmax);
- setToolTipText("<html>" + sequence.getDisplayId(true) + " "
- + tip.toString() + "</html>");
+ SeqPanel sp = alignPanel.getSeqPanel();
+ MousePos pos = sp.findMousePosition(e);
+ if (pos.isOverAnnotation())
+ {
+ /*
+ * mouse is over an annotation label in wrapped mode
+ */
+ AlignmentAnnotation annotation = av.getAlignment()
+ .getAlignmentAnnotation()[pos.annotationIndex];
+ setToolTipText(AnnotationLabels.getTooltip(annotation));
+ }
+ else
+ {
+ int seq = Math.max(0, pos.seqIndex);
+ if (seq < av.getAlignment().getHeight())
+ {
+ SequenceI sequence = av.getAlignment().getSequenceAt(seq);
+ StringBuilder tip = new StringBuilder(64);
+ seqAnnotReport.createTooltipAnnotationReport(tip, sequence,
+ av.isShowDBRefs(), av.isShowNPFeats(), sp.seqCanvas.fr);
+ setToolTipText(JvSwingUtils.wrapTooltip(true,
+ sequence.getDisplayId(true) + " " + tip.toString()));
+ }