JAL-1706 distinguish between 'font too small' and 'font does not have
[jalview.git] / src / jalview / gui / FontChooser.java
index 92d2b2b..2ffb166 100755 (executable)
@@ -23,6 +23,7 @@ package jalview.gui;
 import java.awt.Font;
 import java.awt.FontMetrics;
 import java.awt.event.ActionEvent;
+import java.awt.geom.Rectangle2D;
 
 import javax.swing.JInternalFrame;
 import javax.swing.JLayeredPane;
@@ -241,14 +242,17 @@ public class FontChooser extends GFontChooser
             fontStyle.getSelectedIndex(),
             (Integer) fontSize.getSelectedItem());
     FontMetrics fm = getGraphics().getFontMetrics(newFont);
-    double mw = fm.getStringBounds("M", getGraphics()).getWidth(), iw = fm
-            .getStringBounds("I", getGraphics()).getWidth();
+    double mw = fm.getStringBounds("M", getGraphics()).getWidth();
+    final Rectangle2D iBounds = fm.getStringBounds("I", getGraphics());
+    double iw = iBounds.getWidth();
     if (mw < 1 || iw < 1)
     {
+      final String messageKey = iBounds.getHeight() < 1 ? "label.font_doesnt_have_letters_defined"
+              : "label.font_too_small";
       JOptionPane
               .showInternalMessageDialog(
                       this,
-                      MessageManager.getString("label.font_doesnt_have_letters_defined"),
+              MessageManager.getString(messageKey),
                       MessageManager.getString("label.invalid_font"), JOptionPane.WARNING_MESSAGE);
       /*
        * Restore the changed value - note this will reinvoke this method via the