3 import java.awt.Canvas;
5 import java.awt.FontMetrics;
7 import org.testng.annotations.Test;
9 public class FontChooserTest
13 * Not a real test as it runs no methods on FontChooser and makes no
14 * assertions, but this method writes to sysout the names of any (currently
15 * available, plain) fonts and point sizes that would be rejected by Jalview's
16 * FontChooser as having an I-width of less than 1.0.
18 @Test(groups ={ "Functional" })
19 public void dumpInvalidFonts()
21 String[] fonts = java.awt.GraphicsEnvironment
22 .getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
23 final Canvas canvas = new Canvas();
24 for (int pointSize = 1;; pointSize++)
26 System.out.println(System.lineSeparator()
27 + "Plain fonts with sub-pixel width at " + pointSize + "pt:");
30 System.out.println("All except:");
33 for (String fontname : fonts)
35 Font newFont = new Font(fontname, Font.PLAIN, pointSize);
36 FontMetrics fontm = canvas.getFontMetrics(newFont);
37 double iw = fontm.getStringBounds("I", null).getWidth();
38 final boolean tooSmall = iw < 1d;
43 if ((pointSize > 1 && tooSmall) || (pointSize == 1 && !tooSmall))
45 System.out.println(fontname);