package jalview.gui;
import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotEquals;
import jalview.bin.Cache;
import jalview.bin.Jalview;
import jalview.datamodel.SequenceI;
import jalview.io.DataSourceType;
import jalview.io.FileLoader;
+import jalview.viewmodel.ViewportRanges;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@Test(groups = "Functional")
public void TestSetScrollValues()
{
- int oldres = af.getViewport().getEndRes();
+ ViewportRanges ranges = af.getViewport().getRanges();
+ af.alignPanel.setScrollValues(0, 0);
+
+ int oldres = ranges.getEndRes();
af.alignPanel.setScrollValues(-1, 5);
// setting -ve x value does not change residue
- assertEquals(af.getViewport().getEndRes(), oldres);
+ assertEquals(ranges.getEndRes(), oldres);
af.alignPanel.setScrollValues(0, 5);
// setting 0 as x value does not change residue
- assertEquals(af.getViewport().getEndRes(), oldres);
+ assertEquals(ranges.getEndRes(), oldres);
af.alignPanel.setScrollValues(5, 5);
// setting x value to 5 extends endRes by 5 residues
- assertEquals(af.getViewport().getEndRes(), oldres + 5);
+ assertEquals(ranges.getEndRes(), oldres + 5);
// scroll to position after hidden columns sets endres to oldres (width) +
// position
int scrollpos = 60;
af.getViewport().hideColumns(30, 50);
af.alignPanel.setScrollValues(scrollpos, 5);
- assertEquals(af.getViewport().getEndRes(), oldres + scrollpos);
+ assertEquals(ranges.getEndRes(), oldres + scrollpos);
// scroll to position within hidden columns, still sets endres to oldres +
// position
af.getViewport().showAllHiddenColumns();
af.getViewport().hideColumns(30, 50);
af.alignPanel.setScrollValues(scrollpos, 5);
- assertEquals(af.getViewport().getEndRes(), oldres + scrollpos);
+ assertEquals(ranges.getEndRes(), oldres + scrollpos);
// scroll to position within <width> distance of the end of the alignment
// endRes should be set to width of alignment - 1
scrollpos = 130;
af.getViewport().showAllHiddenColumns();
af.alignPanel.setScrollValues(scrollpos, 5);
- assertEquals(af.getViewport().getEndRes(), af.getViewport()
+ assertEquals(ranges.getEndRes(), af.getViewport()
.getAlignment().getWidth() - 1);
// now hide some columns, and scroll to position within <width>
// columns
af.getViewport().hideColumns(30, 50);
af.alignPanel.setScrollValues(scrollpos, 5);
- assertEquals(af.getViewport().getEndRes(), af.getViewport()
+ assertEquals(ranges.getEndRes(), af.getViewport()
.getAlignment().getWidth() - 1 - 21); // 21 is the number of hidden
// columns
}
+
+ /**
+ * Test that update layout reverts to original (unwrapped) values for endRes
+ * when switching from wrapped back to unwrapped mode (JAL-2739)
+ */
+ @Test(groups = "Functional")
+ public void TestUpdateLayout_endRes()
+ {
+ // get details of original alignment dimensions
+ ViewportRanges ranges = af.getViewport().getRanges();
+ int endres = ranges.getEndRes();
+
+ // wrap
+ af.alignPanel.getAlignViewport().setWrapAlignment(true);
+ af.alignPanel.updateLayout();
+
+ // endRes has changed
+ assertNotEquals(ranges.getEndRes(), endres);
+
+ // unwrap
+ af.alignPanel.getAlignViewport().setWrapAlignment(false);
+ af.alignPanel.updateLayout();
+
+ // endRes back to original value
+ assertEquals(ranges.getEndRes(), endres);
+
+ }
}