*/
package jalview.gui;
-import static org.testng.Assert.assertEquals;
-
import java.awt.Font;
import java.awt.FontMetrics;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
import jalview.bin.Cache;
import jalview.datamodel.AlignmentI;
+import jalview.datamodel.SearchResults;
+import jalview.datamodel.SearchResultsI;
+import jalview.io.DataSourceType;
import jalview.io.DataSourceType;
import jalview.io.FileLoader;
+
import junit.extensions.PA;
public class SeqCanvasTest
int canvasWidth = 400;
int canvasHeight = 300;
int residueColumns = (canvasWidth - 2 * labelWidth) / charWidth;
- int wrappedWidth = testee.calculateWrappedGeometry(canvasWidth, canvasHeight);
+ int wrappedWidth = testee.calculateWrappedGeometry(canvasWidth,
+ canvasHeight);
assertEquals(wrappedWidth, residueColumns);
assertEquals(PA.getValue(testee, "labelWidthWest"), labelWidth);
assertEquals(PA.getValue(testee, "labelWidthEast"), labelWidth);
assertEquals(PA.getValue(testee, "wrappedSpaceAboveAlignment"),
2 * charHeight);
- int repeatingHeight = (int) PA.getValue(testee, "wrappedRepeatHeightPx");
+ int repeatingHeight = (int) PA.getValue(testee,
+ "wrappedRepeatHeightPx");
assertEquals(repeatingHeight, charHeight * (2 + al.getHeight()));
assertEquals(PA.getValue(testee, "wrappedVisibleWidths"), 1);
AlignmentI al = av.getAlignment();
assertEquals(al.getWidth(), 157);
assertEquals(al.getHeight(), 15);
-
+
av.setWrapAlignment(true);
av.getRanges().setStartEndSeq(0, 14);
av.setFont(new Font("SansSerif", Font.PLAIN, 14), true);
int charWidth = av.getCharWidth();
assertEquals(charHeight, 17);
assertEquals(charWidth, 12);
-
+
SeqCanvas testee = af.alignPanel.getSeqPanel().seqCanvas;
-
+
/*
* first with scales above, left, right
*/
int canvasWidth = 400;
int canvasHeight = 300;
int residueColumns = (canvasWidth - 2 * labelWidth) / charWidth;
- int wrappedWidth = testee.calculateWrappedGeometry(canvasWidth, canvasHeight);
+ int wrappedWidth = testee.calculateWrappedGeometry(canvasWidth,
+ canvasHeight);
assertEquals(wrappedWidth, residueColumns);
assertEquals(PA.getValue(testee, "labelWidthWest"), labelWidth);
assertEquals(PA.getValue(testee, "labelWidthEast"), labelWidth);
assertEquals(PA.getValue(testee, "wrappedSpaceAboveAlignment"),
2 * charHeight);
- int repeatingHeight = (int) PA.getValue(testee, "wrappedRepeatHeightPx");
+ int repeatingHeight = (int) PA.getValue(testee,
+ "wrappedRepeatHeightPx");
assertEquals(repeatingHeight, charHeight * (2 + al.getHeight())
+ SeqCanvas.SEQS_ANNOTATION_GAP + annotationHeight);
assertEquals(PA.getValue(testee, "wrappedVisibleWidths"), 1);
-
+
/*
* repeat height is 17 * (2 + 15) = 289 + 3 + annotationHeight = 510
* make canvas height 2 of these plus 3 charHeights
+ 2 * (annotationHeight + SeqCanvas.SEQS_ANNOTATION_GAP);
testee.calculateWrappedGeometry(canvasWidth, canvasHeight);
assertEquals(PA.getValue(testee, "wrappedVisibleWidths"), 3);
-
+
/*
* reduce canvas height by 1 pixel - should not be enough height
* to draw 3 widths
canvasHeight -= 1;
testee.calculateWrappedGeometry(canvasWidth, canvasHeight);
assertEquals(PA.getValue(testee, "wrappedVisibleWidths"), 2);
-
+
/*
* turn off scale above - can now fit in 2 and a bit widths
*/
av.setScaleAboveWrapped(false);
testee.calculateWrappedGeometry(canvasWidth, canvasHeight);
assertEquals(PA.getValue(testee, "wrappedVisibleWidths"), 3);
-
+
/*
* reduce height to enough for 2 widths and not quite a third
* i.e. two repeating heights + spacer + sequence - 1 pixel
Boolean.TRUE.toString());
af = new FileLoader().LoadFileWaitTillLoaded("examples/uniref50.fa",
DataSourceType.FILE);
-
+
/*
* wait for Consensus thread to complete
*/
}
} while (af.getViewport().getCalcManager().isWorking());
}
+
+ @Test(groups = "Functional")
+ public void testClear_HighlightAndSelection()
+ {
+ AlignViewport av = af.getViewport();
+ SearchResultsI highlight = new SearchResults();
+ highlight.addResult(
+ av.getAlignment().getSequenceAt(1).getDatasetSequence(), 50,
+ 80);
+ af.alignPanel.highlightSearchResults(highlight);
+ af.avc.markHighlightedColumns(false, false, false);
+ assertNotNull(av.getSearchResults(),
+ "No highlight was created on alignment");
+ assertFalse(av.getColumnSelection().isEmpty(),
+ "No selection was created from highlight");
+ af.deselectAllSequenceMenuItem_actionPerformed(null);
+ assertTrue(av.getColumnSelection().isEmpty(),
+ "No Selection should be present after deselecting all.");
+ assertNull(av.getSearchResults(),
+ "No higlighted search results should be present after deselecting all.");
+ }
}