JAL-4285 Better checkFiles processing. Better dialog.
[jalview.git] / src / jalview / gui / Desktop.java
index f0753bc..ee24c25 100644 (file)
@@ -22,6 +22,7 @@ package jalview.gui;
 
 import java.awt.BorderLayout;
 import java.awt.Color;
+import java.awt.Component;
 import java.awt.Dimension;
 import java.awt.FontMetrics;
 import java.awt.Graphics;
@@ -3744,24 +3745,26 @@ public class Desktop extends jalview.jbgui.GDesktop
   public void nonBlockingDialog(String title, String message, String button,
           int type, boolean scrollable, boolean modal)
   {
-    nonBlockingDialog(32, 2, title, message, button, type, scrollable,
+    nonBlockingDialog(32, 2, title, message, null, button, type, scrollable,
             modal);
   }
 
   public void nonBlockingDialog(int width, int height, String title,
-          String message, String button, int type, boolean scrollable,
-          boolean modal)
+          String message, String boxtext, String button, int type,
+          boolean scrollable, boolean modal)
   {
     if (type < 0)
     {
       type = JvOptionPane.WARNING_MESSAGE;
     }
+    JLabel jl = new JLabel(message);
+
     JTextArea jta = new JTextArea(height, width);
     // jta.setLineWrap(true);
     jta.setEditable(false);
     jta.setWrapStyleWord(true);
     jta.setAutoscrolls(true);
-    jta.setText(message);
+    jta.setText(boxtext);
 
     JScrollPane jsp = scrollable
             ? new JScrollPane(jta, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
@@ -3769,10 +3772,33 @@ public class Desktop extends jalview.jbgui.GDesktop
             : null;
 
     JvOptionPane jvp = JvOptionPane.newOptionDialog(this);
+
+    JPanel jp = new JPanel();
+    jp.setLayout(new BoxLayout(jp, BoxLayout.Y_AXIS));
+
+    if (message != null)
+    {
+      jl.setAlignmentX(Component.LEFT_ALIGNMENT);
+      jp.add(jl);
+    }
+    if (boxtext != null)
+    {
+      if (scrollable)
+      {
+        jsp.setAlignmentX(Component.LEFT_ALIGNMENT);
+        jp.add(jsp);
+      }
+      else
+      {
+        jta.setAlignmentX(Component.LEFT_ALIGNMENT);
+        jp.add(jta);
+      }
+    }
+
     jvp.setResponseHandler(JOptionPane.YES_OPTION, () -> {
     });
-    jvp.showDialogOnTopAsync(this, scrollable ? jsp : jta, title,
-            JOptionPane.YES_OPTION, type, null, new Object[]
+    jvp.showDialogOnTopAsync(this, jp, title, JOptionPane.YES_OPTION, type,
+            null, new Object[]
             { button }, button, modal, null, false);
   }