import jalview.io.DataSourceType;
import jalview.io.FileLoader;
import jalview.util.MessageManager;
+import jalview.viewmodel.ViewportRanges;
-import java.awt.event.InputEvent;import java.awt.EventQueue;
+import java.awt.EventQueue;
import java.awt.event.MouseEvent;
import java.lang.reflect.InvocationTargetException;
@AfterMethod(alwaysRun = true)
public void tearDown()
{
- Desktop.instance.closeAll_actionPerformed(null);
+ Desktop.getInstance().closeAll_actionPerformed(null);
}
@Test(groups = "Functional")
public void testFindMousePosition_wrapped_annotations()
{
- Cache.applicationProperties.setProperty("SHOW_ANNOTATIONS", "true");
- Cache.applicationProperties.setProperty("WRAP_ALIGNMENT", "true");
+ Cache.setPropertyNoSave("SHOW_ANNOTATIONS", "true");
+ Cache.setPropertyNoSave("WRAP_ALIGNMENT", "true");
AlignFrame alignFrame = new FileLoader().LoadFileWaitTillLoaded(
"examples/uniref50.fa", DataSourceType.FILE);
AlignViewportI av = alignFrame.getViewport();
av.setScaleAboveWrapped(false);
av.setScaleLeftWrapped(false);
av.setScaleRightWrapped(false);
- alignFrame.alignPanel.paintAlignment(false, false);
- waitForSwing(); // for Swing thread
+
+ alignFrame.alignPanel.updateLayout();
final int charHeight = av.getCharHeight();
final int charWidth = av.getCharWidth();
@Test(groups = "Functional")
public void testFindMousePosition_wrapped_scaleAbove()
{
- Cache.applicationProperties.setProperty("SHOW_ANNOTATIONS", "true");
- Cache.applicationProperties.setProperty("WRAP_ALIGNMENT", "true");
+ Cache.setPropertyNoSave("SHOW_ANNOTATIONS", "true");
+ Cache.setPropertyNoSave("WRAP_ALIGNMENT", "true");
AlignFrame alignFrame = new FileLoader().LoadFileWaitTillLoaded(
"examples/uniref50.fa", DataSourceType.FILE);
AlignViewportI av = alignFrame.getViewport();
av.setScaleAboveWrapped(true);
av.setScaleLeftWrapped(false);
av.setScaleRightWrapped(false);
- alignFrame.alignPanel.paintAlignment(false, false);
- waitForSwing();
+ alignFrame.alignPanel.updateLayout();
final int charHeight = av.getCharHeight();
final int charWidth = av.getCharWidth();
evt = new MouseEvent(testee, MouseEvent.MOUSE_MOVED, 0L, 0, x, y, 0, 0, 0,
false, 0);
pos = testee.findMousePosition(evt);
- assertEquals(pos.seqIndex, alignmentHeight - 1);
+ SeqCanvas sc = testee.seqCanvas;
+ assertEquals(pos.seqIndex, alignmentHeight - 1,
+ String.format("%s n=%d y=%d %d, %d, %d, %d",
+ annotationRows[n].label, n, y, sc.getWidth(),
+ sc.getHeight(), sc.wrappedRepeatHeightPx,
+ sc.wrappedSpaceAboveAlignment));
assertEquals(pos.annotationIndex, n);
}
@Test(groups = "Functional")
public void testFindMousePosition_wrapped_noAnnotations()
{
- Cache.applicationProperties.setProperty("SHOW_ANNOTATIONS", "false");
- Cache.applicationProperties.setProperty("WRAP_ALIGNMENT", "true");
+ Cache.setPropertyNoSave("SHOW_ANNOTATIONS", "false");
+ Cache.setPropertyNoSave("WRAP_ALIGNMENT", "true");
AlignFrame alignFrame = new FileLoader().LoadFileWaitTillLoaded(
"examples/uniref50.fa", DataSourceType.FILE);
AlignViewportI av = alignFrame.getViewport();
av.setScaleAboveWrapped(false);
av.setScaleLeftWrapped(false);
av.setScaleRightWrapped(false);
- alignFrame.alignPanel.paintAlignment(false, false);
- waitForSwing();
+ alignFrame.alignPanel.updateLayout();
final int charHeight = av.getCharHeight();
final int charWidth = av.getCharWidth();
@Test(groups = "Functional")
public void testFindColumn_unwrapped()
{
- Cache.applicationProperties.setProperty("WRAP_ALIGNMENT", "false");
+ Cache.setPropertyNoSave("WRAP_ALIGNMENT", "false");
AlignFrame alignFrame = new FileLoader().LoadFileWaitTillLoaded(
"examples/uniref50.fa", DataSourceType.FILE);
SeqPanel testee = alignFrame.alignPanel.getSeqPanel();
int x = 0;
final int charWidth = alignFrame.getViewport().getCharWidth();
assertTrue(charWidth > 0); // sanity check
- assertEquals(alignFrame.getViewport().getRanges().getStartRes(), 0);
+ ViewportRanges ranges = alignFrame.getViewport().getRanges();
+ assertEquals(ranges.getStartRes(), 0);
/*
* mouse at top left of unwrapped panel
false, 0);
SeqCanvas seqCanvas = alignFrame.alignPanel.getSeqPanel().seqCanvas;
int w = seqCanvas.getWidth();
- // limited to number of whole columns, base 0
- int expected = w / charWidth - 1;
+ // limited to number of whole columns, base 0,
+ // and to end of visible range
+ int expected = w / charWidth;
+ expected = Math.min(expected, ranges.getEndRes());
assertEquals(testee.findColumn(evt), expected);
/*
@Test(groups = "Functional")
public void testFindColumn_wrapped()
{
- Cache.applicationProperties.setProperty("WRAP_ALIGNMENT", "true");
+ Cache.setPropertyNoSave("WRAP_ALIGNMENT", "true");
AlignFrame alignFrame = new FileLoader().LoadFileWaitTillLoaded(
"examples/uniref50.fa", DataSourceType.FILE);
AlignViewport av = alignFrame.getViewport();
av.setScaleAboveWrapped(false);
av.setScaleLeftWrapped(false);
av.setScaleRightWrapped(false);
- alignFrame.alignPanel.paintAlignment(false, false);
- // need to wait for repaint to finish!
- waitForSwing();
+ alignFrame.alignPanel.updateLayout();
SeqPanel testee = alignFrame.alignPanel.getSeqPanel();
int x = 0;
final int charWidth = av.getCharWidth();
* x over scale left (before drawn columns) results in -1
*/
av.setScaleLeftWrapped(true);
- alignFrame.alignPanel.paintAlignment(false, false);
- waitForSwing();
+ alignFrame.alignPanel.updateLayout();
SeqCanvas seqCanvas = testee.seqCanvas;
int labelWidth = (int) PA.getValue(seqCanvas, "labelWidthWest");
assertTrue(labelWidth > 0);
* x over scale right (beyond drawn columns) results in -1
*/
av.setScaleRightWrapped(true);
- alignFrame.alignPanel.paintAlignment(false, false);
- waitForSwing();
+ alignFrame.alignPanel.updateLayout();
labelWidth = (int) PA.getValue(seqCanvas, "labelWidthEast");
assertTrue(labelWidth > 0);
int residuesWide2 = av.getRanges().getViewportWidth();