JAL-2504 allow feature type to be specified for Create Features dialog
[jalview.git] / src / jalview / gui / SeqPanel.java
index db7aa36..95fe381 100644 (file)
@@ -59,6 +59,7 @@ import java.awt.event.MouseMotionListener;
 import java.awt.event.MouseWheelEvent;
 import java.awt.event.MouseWheelListener;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 import javax.swing.JPanel;
@@ -1484,6 +1485,11 @@ public class SeqPanel extends JPanel implements MouseListener,
     }
   }
 
+  /**
+   * Handler for double-click on a position with one or more sequence features.
+   * Opens the Amend Features dialog to allow feature details to be amended, or
+   * the feature deleted.
+   */
   @Override
   public void mouseClicked(MouseEvent evt)
   {
@@ -1502,20 +1508,23 @@ public class SeqPanel extends JPanel implements MouseListener,
               .findFeaturesAtRes(sequence.getDatasetSequence(),
                       sequence.findPosition(findRes(evt)));
 
-      if (features != null && features.size() > 0)
+      if (!features.isEmpty())
       {
+        /*
+         * highlight the first feature at the position on the alignment
+         */
         SearchResultsI highlight = new SearchResults();
         highlight.addResult(sequence, features.get(0).getBegin(), features
                 .get(0).getEnd());
         seqCanvas.highlightSearchResults(highlight);
-      }
-      if (features != null && features.size() > 0)
-      {
-        seqCanvas.getFeatureRenderer().amendFeatures(
-                new SequenceI[] { sequence },
-                features.toArray(new SequenceFeature[features.size()]),
-                false, ap);
 
+        /*
+         * open the Amend Features dialog; clear highlighting afterwards,
+         * whether changes were made or not
+         */
+        List<SequenceI> seqs = Collections.singletonList(sequence);
+        seqCanvas.getFeatureRenderer().amendFeatures(seqs, features, false,
+                ap, null);
         seqCanvas.highlightSearchResults(null);
       }
     }