JAL-4274 comments to help follow the tests
[jalview.git] / src / jalview / gui / Desktop.java
index f0753bc..e785431 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;
@@ -94,6 +95,7 @@ import javax.swing.JProgressBar;
 import javax.swing.JScrollPane;
 import javax.swing.JTextArea;
 import javax.swing.JTextField;
+import javax.swing.JTextPane;
 import javax.swing.KeyStroke;
 import javax.swing.SwingUtilities;
 import javax.swing.WindowConstants;
@@ -101,6 +103,7 @@ import javax.swing.event.HyperlinkEvent;
 import javax.swing.event.HyperlinkEvent.EventType;
 import javax.swing.event.InternalFrameAdapter;
 import javax.swing.event.InternalFrameEvent;
+import javax.swing.text.JTextComponent;
 
 import org.stackoverflowusers.file.WindowsShortcut;
 
@@ -3744,35 +3747,76 @@ 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,
-            modal);
+    nonBlockingDialog(32, 2, title, message, null, button, type, scrollable,
+            false, 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 html, boolean modal)
   {
     if (type < 0)
     {
       type = JvOptionPane.WARNING_MESSAGE;
     }
-    JTextArea jta = new JTextArea(height, width);
-    // jta.setLineWrap(true);
-    jta.setEditable(false);
-    jta.setWrapStyleWord(true);
-    jta.setAutoscrolls(true);
-    jta.setText(message);
+    JLabel jl = new JLabel(message);
+
+    JTextComponent jtc = null;
+    if (html)
+    {
+      JTextPane jtp = new JTextPane();
+      jtp.setContentType("text/html");
+      jtp.setEditable(false);
+      jtp.setAutoscrolls(true);
+      jtp.setText(boxtext);
+
+      jtc = jtp;
+    }
+    else
+    {
+      JTextArea jta = new JTextArea(height, width);
+      // jta.setLineWrap(true);
+      jta.setEditable(false);
+      jta.setWrapStyleWord(true);
+      jta.setAutoscrolls(true);
+      jta.setText(boxtext);
+
+      jtc = jta;
+    }
 
     JScrollPane jsp = scrollable
-            ? new JScrollPane(jta, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
+            ? new JScrollPane(jtc, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
                     JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED)
             : 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
+      {
+        jtc.setAlignmentX(Component.LEFT_ALIGNMENT);
+        jp.add(jtc);
+      }
+    }
+
     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);
   }