Merge branch 'develop' into features/JAL-2446NCList
[jalview.git] / src / jalview / appletgui / SeqPanel.java
index f0ec51c..c57f88a 100644 (file)
@@ -54,7 +54,6 @@ import java.awt.event.InputEvent;
 import java.awt.event.MouseEvent;
 import java.awt.event.MouseListener;
 import java.awt.event.MouseMotionListener;
-import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.ListIterator;
@@ -584,7 +583,6 @@ public class SeqPanel extends Panel implements MouseMotionListener,
         seqCanvas.highlightSearchResults(highlight);
         seqCanvas.getFeatureRenderer().amendFeatures(
                 Collections.singletonList(sequence), features, false, ap);
-
         seqCanvas.highlightSearchResults(null);
       }
     }
@@ -870,7 +868,7 @@ public class SeqPanel extends Panel implements MouseMotionListener,
     if (av.isShowSequenceFeatures())
     {
       List<SequenceFeature> allFeatures = findFeaturesAtRes(sequence,
-              sequence.findPosition(column));
+              respos);
       if (isGapped)
       {
         removeAdjacentFeatures(allFeatures, column + 1, sequence);
@@ -906,6 +904,11 @@ public class SeqPanel extends Panel implements MouseMotionListener,
     }
   }
 
+  List<SequenceFeature> findFeaturesAtRes(SequenceI sequence, int res)
+  {
+    return seqCanvas.getFeatureRenderer().findFeaturesAtRes(sequence, res);
+  }
+
   /**
    * Removes from the list of features any that start after, or end before, the
    * given column position. This allows us to retain only those features
@@ -932,39 +935,6 @@ public class SeqPanel extends Panel implements MouseMotionListener,
     }
   }
 
-  List<SequenceFeature> findFeaturesAtRes(SequenceI sequence, int res)
-  {
-    List<SequenceFeature> result = new ArrayList<SequenceFeature>();
-    SequenceFeature[] features = sequence.getSequenceFeatures();
-    if (features != null)
-    {
-      for (int i = 0; i < features.length; i++)
-      {
-        if (av.getFeaturesDisplayed() == null
-                || !av.getFeaturesDisplayed().isVisible(
-                        features[i].getType()))
-        {
-          continue;
-        }
-
-        if (features[i].featureGroup != null
-                && !seqCanvas.fr.checkGroupVisibility(
-                        features[i].featureGroup, false))
-        {
-          continue;
-        }
-
-        if ((features[i].getBegin() <= res)
-                && (features[i].getEnd() >= res))
-        {
-          result.add(features[i]);
-        }
-      }
-    }
-
-    return result;
-  }
-
   Tooltip tooltip;
 
   /**
@@ -1500,10 +1470,7 @@ public class SeqPanel extends Panel implements MouseMotionListener,
           {
             links = new Vector<String>();
           }
-          for (int j = 0; j < sf.links.size(); j++)
-          {
-            links.addElement(sf.links.elementAt(j));
-          }
+          links.addAll(sf.links);
         }
       }
       APopupMenu popup = new APopupMenu(ap, null, links);