Resolved diffs from 2.8.3
[jalview.git] / src / jalview / gui / SeqPanel.java
index a7e4057..afd3242 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
- * Copyright (C) 2014 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
@@ -26,6 +26,7 @@ import jalview.commands.EditCommand.Action;
 import jalview.commands.EditCommand.Edit;
 import jalview.datamodel.ColumnSelection;
 import jalview.datamodel.SearchResults;
+import jalview.datamodel.SearchResults.Match;
 import jalview.datamodel.Sequence;
 import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceGroup;
@@ -653,6 +654,7 @@ public class SeqPanel extends JPanel implements MouseListener,
         seqCanvas.revalidate();
       }
     }
+    setStatusMessage(results);
     seqCanvas.highlightSearchResults(results);
   }
 
@@ -798,9 +800,13 @@ public class SeqPanel extends JPanel implements MouseListener,
    */
   int setStatusMessage(SequenceI sequence, int res, int seq)
   {
-    int pos = -1;
     StringBuilder text = new StringBuilder(32);
-    text.append("Sequence " + (seq + 1) + " ID: " + sequence.getName());
+
+    /*
+     * Sequence number (if known), and sequence name.
+     */
+    String seqno = seq == -1 ? "" : " " + (seq + 1);
+    text.append("Sequence" + seqno + " ID: " + sequence.getName());
 
     String residue = null;
     /*
@@ -817,7 +823,7 @@ public class SeqPanel extends JPanel implements MouseListener,
     }
     else
     {
-      residue = "X".equalsIgnoreCase(displayChar) ? "STOP"
+      residue = "X".equalsIgnoreCase(displayChar) ? "X"
               : ResidueProperties.aa2Triplet.get(displayChar);
       if (residue != null)
       {
@@ -825,6 +831,7 @@ public class SeqPanel extends JPanel implements MouseListener,
       }
     }
 
+    int pos = -1;
     if (residue != null)
     {
       pos = sequence.findPosition(res);
@@ -835,6 +842,30 @@ public class SeqPanel extends JPanel implements MouseListener,
   }
 
   /**
+   * Set the status bar message to highlight the first matched position in
+   * search results.
+   * 
+   * @param results
+   */
+  private void setStatusMessage(SearchResults results)
+  {
+    List<Match> matches = results.getResults();
+    if (!matches.isEmpty())
+    {
+      Match m = matches.get(0);
+      SequenceI seq = m.getSequence();
+      int sequenceIndex = this.av.getAlignment().findIndex(seq);
+
+      /*
+       * Convert position in sequence (base 1) to sequence character array index
+       * (base 0)
+       */
+      int start = m.getStart() - 1;
+      setStatusMessage(seq, start, sequenceIndex);
+    }
+  }
+
+  /**
    * DOCUMENT ME!
    * 
    * @param evt