X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSeqPanel.java;h=95fe3817fc6344062eaee1b37e4aeec6b85f5b07;hb=651ed4273f899e80f4931bed82714355e16fd837;hp=db7aa36e3bb6684aba6d76cdf755c18764111f2b;hpb=8356850ec2f6043a65d3d892f9ebd405f23893e2;p=jalview.git diff --git a/src/jalview/gui/SeqPanel.java b/src/jalview/gui/SeqPanel.java index db7aa36..95fe381 100644 --- a/src/jalview/gui/SeqPanel.java +++ b/src/jalview/gui/SeqPanel.java @@ -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 seqs = Collections.singletonList(sequence); + seqCanvas.getFeatureRenderer().amendFeatures(seqs, features, false, + ap, null); seqCanvas.highlightSearchResults(null); } }