Update features
[jalview.git] / src / jalview / gui / SeqPanel.java
index e51b13c..a4c2279 100755 (executable)
@@ -179,7 +179,6 @@ public class SeqPanel extends JPanel implements MouseListener,
   {\r
     Vector tmp = new Vector();\r
     SequenceFeature[] features = sequence.getSequenceFeatures();\r
-\r
     if (features != null)\r
     {\r
       for (int i = 0; i < features.length; i++)\r
@@ -188,8 +187,8 @@ public class SeqPanel extends JPanel implements MouseListener,
             || !av.featuresDisplayed.containsKey(features[i].getType()))\r
           continue;\r
 \r
-        if ( (features[i].getBegin() <= sequence.findPosition(res)) &&\r
-            (features[i].getEnd() >= sequence.findPosition(res)))\r
+        if ( (features[i].getBegin() <= res) &&\r
+            (features[i].getEnd() >= res))\r
         {\r
           tmp.addElement(features[i]);\r
         }\r
@@ -558,7 +557,7 @@ public class SeqPanel extends JPanel implements MouseListener,
             tooltipText.setLength(6); // Cuts the buffer back to <html>\r
 \r
             SequenceFeature[] features = findFeaturesAtRes(\r
-                sequence.getDatasetSequence(), res);\r
+                sequence.getDatasetSequence(), sequence.findPosition(res));\r
 \r
             if(features!=null)\r
             {\r
@@ -649,7 +648,6 @@ public class SeqPanel extends JPanel implements MouseListener,
                 }\r
               }\r
 \r
-\r
               if(tooltipText.length()==6) // <html></html>\r
               {\r
 \r
@@ -1202,17 +1200,35 @@ public class SeqPanel extends JPanel implements MouseListener,
 \r
     public void mouseClicked(MouseEvent evt)\r
     {\r
+      SequenceI sequence = av.alignment.getSequenceAt( findSeq(evt) );\r
       if(evt.getClickCount()>1)\r
       {\r
+        if (av.getSelectionGroup().getSize(false) == 1\r
+            && av.getSelectionGroup().getEndRes()\r
+            - av.getSelectionGroup().getStartRes() < 2)\r
+          av.setSelectionGroup(null);\r
 \r
         SequenceFeature[] features = findFeaturesAtRes(\r
-            av.alignment.getSequenceAt( findSeq(evt) ).getDatasetSequence(),\r
-            findRes(evt)\r
+            sequence.getDatasetSequence(),\r
+            sequence.findPosition( findRes(evt) )\r
             );\r
-        for(int f=0; f<features.length; f++)\r
-          System.out.println("SELECT: "+features[f].getType()+" "\r
-      +features[f].getBegin()+" "+features[f].getEnd());\r
 \r
+        if(features!=null && features.length==1)\r
+        {\r
+          SearchResults highlight = new SearchResults();\r
+          highlight.addResult(sequence,\r
+                              features[0].getBegin(),\r
+                              features[0].getEnd());\r
+          seqCanvas.highlightSearchResults(highlight);\r
+        }\r
+        if(features!=null)\r
+        {\r
+          seqCanvas.getFeatureRenderer().amendFeatures(\r
+              new SequenceI[]\r
+              {sequence}, features, false);\r
+\r
+          seqCanvas.highlightSearchResults(null);\r
+        }\r
       }\r
     }\r
 \r