SequenceFeature display added
[jalview.git] / src / jalview / gui / SeqPanel.java
index aa4a456..cc16a26 100755 (executable)
@@ -4,6 +4,7 @@ import java.awt.*;
 import java.awt.event.*;\r
 import jalview.datamodel.*;\r
 import javax.swing.*;\r
+import java.util.*;\r
 import jalview.schemes.*;\r
 import jalview.analysis.*;\r
 \r
@@ -168,17 +169,40 @@ public class SeqPanel extends JPanel
     if(seq>=av.getAlignment().getHeight())\r
       return;\r
 \r
-    Object obj = ResidueProperties.aa2Triplet.get( av.getAlignment().getSequenceAt(seq).getCharAt(res)+"" ) ;\r
+    SequenceI sequence = av.getAlignment().getSequenceAt(seq);\r
+    Object obj = ResidueProperties.aa2Triplet.get( sequence.getCharAt(res)+"" ) ;\r
     String aa = "";\r
     if(obj!=null)\r
          aa = obj.toString();\r
 \r
-    StringBuffer text = new StringBuffer("Sequence " +(seq+1)+" ID: "+av.getAlignment().getSequenceAt(seq).getName());\r
+    StringBuffer text = new StringBuffer("Sequence " +(seq+1)+" ID: "+sequence.getName());\r
     if(aa!="")\r
       text.append("  Residue: "+aa+" ("+  av.getAlignment().getSequenceAt(seq).findPosition(res)+")");\r
 \r
     ap.alignFrame.statusBar.setText(text.toString());\r
 \r
+    if(av.showSequenceFeatures)\r
+    {\r
+      Vector features = sequence.getSequenceFeatures();\r
+      Enumeration e = features.elements();\r
+      StringBuffer sbuffer = new StringBuffer();\r
+\r
+      this.setToolTipText(null);\r
+      while (e.hasMoreElements())\r
+      {\r
+        SequenceFeature sf = (SequenceFeature) e.nextElement();\r
+        if (sf.getStart() <= sequence.findPosition(res) &&\r
+            sf.getEnd() >= sequence.findPosition(res))\r
+        {\r
+          sbuffer.append(sf.getType() + " " + sf.getDescription());\r
+          ToolTipManager.sharedInstance().registerComponent(this);\r
+          this.setToolTipText(sbuffer.toString());\r
+        }\r
+\r
+      }\r
+    }\r
+\r
+\r
   }\r
 \r
   public void doMouseDragged(MouseEvent evt) {\r