From: Jim Procter Date: Sat, 27 May 2017 11:41:43 +0000 (+0100) Subject: Merge branch 'task/JAL-2562_SequenceI.findPosition' into develop X-Git-Tag: Release_2_10_2~3^2~68 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=2bb31b63e0da18f05ac45fa105cf724b3927bc60;hp=29c1b348223da118a14845f9aeb2fe9e34612a32;p=jalview.git Merge branch 'task/JAL-2562_SequenceI.findPosition' into develop --- diff --git a/src/jalview/appletgui/SeqPanel.java b/src/jalview/appletgui/SeqPanel.java index d46cc34..f58f420 100644 --- a/src/jalview/appletgui/SeqPanel.java +++ b/src/jalview/appletgui/SeqPanel.java @@ -412,13 +412,13 @@ public class SeqPanel extends Panel implements MouseMotionListener, * * @param sequence * aligned sequence object - * @param res + * @param column * alignment column * @param seq * index of sequence in alignment - * @return position of res in sequence + * @return position of column in sequence or -1 if at gap */ - void setStatusMessage(SequenceI sequence, int res, int seq) + void setStatusMessage(SequenceI sequence, int column, int seq) { // TODO remove duplication of identical gui method StringBuilder text = new StringBuilder(32); @@ -429,7 +429,7 @@ public class SeqPanel extends Panel implements MouseMotionListener, /* * Try to translate the display character to residue name (null for gap). */ - final String displayChar = String.valueOf(sequence.getCharAt(res)); + final String displayChar = String.valueOf(sequence.getCharAt(column)); if (av.getAlignment().isNucleotide()) { residue = ResidueProperties.nucleotideName.get(displayChar); @@ -452,7 +452,7 @@ public class SeqPanel extends Panel implements MouseMotionListener, int pos = -1; if (residue != null) { - pos = sequence.findPosition(res); + pos = sequence.findPosition(column); text.append(" (").append(Integer.toString(pos)).append(")"); } diff --git a/src/jalview/datamodel/SequenceI.java b/src/jalview/datamodel/SequenceI.java index 92f797f..e81553b 100755 --- a/src/jalview/datamodel/SequenceI.java +++ b/src/jalview/datamodel/SequenceI.java @@ -189,12 +189,13 @@ public interface SequenceI extends ASequenceI public int findIndex(int pos); /** - * Returns the sequence position for an alignment position + * Returns the sequence position for an alignment position. * * @param i * column index in alignment (from 0... + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ +package jalview.gui; + +import static org.testng.Assert.assertEquals; + +import jalview.datamodel.Alignment; +import jalview.datamodel.AlignmentI; +import jalview.datamodel.Sequence; +import jalview.datamodel.SequenceI; + +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +public class SeqPanelTest +{ + AlignFrame af; + + @BeforeClass(alwaysRun = true) + public void setUpJvOptionPane() + { + JvOptionPane.setInteractiveMode(false); + JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); + } + @Test(groups = "Functional") + public void testSetStatusReturnsPosOrMinusOne() + { + SequenceI seq1 = new Sequence("Seq1", "ABCDEFGHIJ"); + SequenceI seq2 = new Sequence("Seq2", "AB--EFGHIJ"); + AlignmentI al = new Alignment(new SequenceI[] { seq1, seq2 }); + AlignFrame alignFrame = new AlignFrame(al, al.getWidth(), + al.getHeight()); + AlignmentI visAl = alignFrame.getViewport().getAlignment(); + assertEquals( + alignFrame.alignPanel.getSeqPanel().setStatusMessage( + visAl.getSequenceAt(1), 1, 1), 2); + assertEquals( + + alignFrame.alignPanel.getSeqPanel().setStatusMessage( + visAl.getSequenceAt(1), 2, 1), -1); + assertEquals( + alignFrame.alignPanel.getSeqPanel().setStatusMessage( + visAl.getSequenceAt(1), 3, 1), -1); + assertEquals( + alignFrame.alignPanel.getSeqPanel().setStatusMessage( + visAl.getSequenceAt(1), 4, 1), 3); + } +}