X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FIdPanel.java;h=1fd9e492dd7fa30acd753ed3420a41be44b21d52;hb=8d0d4cb4f21a2f15d61b90b0eb764041c664c81d;hp=6cb4e17bbbe0bbd4c58466184070f46c75c97b85;hpb=489909eb49db19b0980e49bedb0ff2add11bea2e;p=jalview.git diff --git a/src/jalview/gui/IdPanel.java b/src/jalview/gui/IdPanel.java index 6cb4e17..1fd9e49 100755 --- a/src/jalview/gui/IdPanel.java +++ b/src/jalview/gui/IdPanel.java @@ -95,11 +95,10 @@ public class IdPanel extends JPanel } /** - * Respond to mouse movement by constructing tooltip text for the sequence id - * under the mouse. + * Responds to mouse movement by setting tooltip text for the sequence id + * under the mouse (or possibly annotation label, when in wrapped mode) * * @param e - * DOCUMENT ME! */ @Override public void mouseMoved(MouseEvent e) @@ -111,9 +110,12 @@ public class IdPanel extends JPanel /* * mouse is over an annotation label in wrapped mode */ - AlignmentAnnotation annotation = av.getAlignment() - .getAlignmentAnnotation()[pos.annotationIndex]; + AlignmentAnnotation[] anns = av.getAlignment() + .getAlignmentAnnotation(); + AlignmentAnnotation annotation = anns[pos.annotationIndex]; setToolTipText(AnnotationLabels.getTooltip(annotation)); + alignPanel.alignFrame.setStatus( + AnnotationLabels.getStatusMessage(annotation, anns)); } else { @@ -122,10 +124,16 @@ public class IdPanel extends JPanel { SequenceI sequence = av.getAlignment().getSequenceAt(seq); StringBuilder tip = new StringBuilder(64); + tip.append(sequence.getDisplayId(true)).append(" "); seqAnnotReport.createTooltipAnnotationReport(tip, sequence, av.isShowDBRefs(), av.isShowNPFeats(), sp.seqCanvas.fr); - setToolTipText(JvSwingUtils.wrapTooltip(true, - sequence.getDisplayId(true) + " " + tip.toString())); + setToolTipText(JvSwingUtils.wrapTooltip(true, tip.toString())); + + StringBuilder text = new StringBuilder(); + text.append("Sequence ").append(String.valueOf(seq + 1)) + .append(" ID: ") + .append(sequence.getName()); + alignPanel.alignFrame.setStatus(text.toString()); } } } @@ -220,13 +228,12 @@ public class IdPanel extends JPanel } MousePos pos = alignPanel.getSeqPanel().findMousePosition(e); - if (pos.isOverAnnotation()) + int seq = pos.seqIndex; + if (pos.isOverAnnotation() || seq < 0) { - // mouse is over annotation label in wrapped mode return; } - int seq = pos.seqIndex; String id = av.getAlignment().getSequenceAt(seq).getName(); String url = Preferences.sequenceUrlLinks.getPrimaryUrl(id); @@ -366,8 +373,11 @@ public class IdPanel extends JPanel * build a new links menu based on the current links * and any non-positional features */ + List features = null; + if (sq != null) + { List nlinks = Preferences.sequenceUrlLinks.getLinksForMenu(); - List features = sq.getFeatures().getNonPositionalFeatures(); + features = sq.getFeatures().getNonPositionalFeatures(); for (SequenceFeature sf : features) { if (sf.links != null) @@ -375,6 +385,7 @@ public class IdPanel extends JPanel nlinks.addAll(sf.links); } } + } PopupMenu pop = new PopupMenu(alignPanel, sq, features, Preferences.getGroupURLLinks()); @@ -423,7 +434,7 @@ public class IdPanel extends JPanel lastid = seq; SequenceI pickedSeq = av.getAlignment().getSequenceAt(seq); - av.getSelectionGroup().addOrRemove(pickedSeq, true); + av.getSelectionGroup().addOrRemove(pickedSeq, false); } /** @@ -458,7 +469,7 @@ public class IdPanel extends JPanel for (int i = start; i <= end; i++) { av.getSelectionGroup().addSequence(av.getAlignment().getSequenceAt(i), - i == end); + false); } }