Merge branch 'improvement/JAL-3830_remove_dock_icon_in_headless_mode' into merge...
authorBen Soares <b.soares@dundee.ac.uk>
Fri, 18 Aug 2023 13:34:14 +0000 (14:34 +0100)
committerBen Soares <b.soares@dundee.ac.uk>
Fri, 18 Aug 2023 13:34:14 +0000 (14:34 +0100)
1  2 
src/jalview/bin/Jalview.java
src/jalview/gui/JvOptionPane.java

@@@ -274,7 -274,7 +274,7 @@@ public class Jalvie
       * 
       */
      {
-       System.out.println("not in js");
+       Console.outPrintln("not in js");
      }
  
      // BH - for event debugging in JavaScript (Java mode only)
        }.start();
      }
  
-     if (!quiet() || bootstrapArgs.contains(Arg.VERSION))
+     if (!quiet() || !bootstrapArgs.outputToStdout()
+             || bootstrapArgs.contains(Arg.VERSION))
      {
-       System.out.println(
+       Console.outPrintln(
                "Java version: " + System.getProperty("java.version"));
-       System.out.println("Java home: " + System.getProperty("java.home"));
-       System.out.println("Java arch: " + System.getProperty("os.arch") + " "
+       Console.outPrintln("Java home: " + System.getProperty("java.home"));
+       Console.outPrintln("Java arch: " + System.getProperty("os.arch") + " "
                + System.getProperty("os.name") + " "
                + System.getProperty("os.version"));
  
        String val = System.getProperty("sys.install4jVersion");
        if (val != null)
        {
-         System.out.println("Install4j version: " + val);
+         Console.outPrintln("Install4j version: " + val);
        }
        val = System.getProperty("installer_template_version");
        if (val != null)
        {
-         System.out.println("Install4j template version: " + val);
+         Console.outPrintln("Install4j template version: " + val);
        }
        val = System.getProperty("launcher_version");
        if (val != null)
        {
-         System.out.println("Launcher version: " + val);
+         Console.outPrintln("Launcher version: " + val);
        }
      }
  
      Cache.loadProperties(usrPropsFile);
      if (usrPropsFile != null)
      {
-       System.out.println(
+       Console.outPrintln(
                "CMD [-props " + usrPropsFile + "] executed successfully!");
        testoutput(bootstrapArgs, Arg.PROPS,
                "test/jalview/bin/testProps.jvprops", usrPropsFile);
        {
          List<Map.Entry<Type, String>> helpArgs = bootstrapArgs
                  .getList(Arg.HELP);
-         System.out.println(Arg.usage(helpArgs.stream().map(e -> e.getKey())
+         Console.outPrintln(Arg.usage(helpArgs.stream().map(e -> e.getKey())
                  .collect(Collectors.toList())));
          Jalview.exit(null, 0);
        }
           * Now using new usage statement.
          showUsage();
          */
-         System.out.println(Arg.usage());
+         Console.outPrintln(Arg.usage());
          Jalview.exit(null, 0);
        }
  
          try
          {
            Jws2Discoverer.getDiscoverer().setPreferredUrl(jabawsUrl);
-           System.out.println(
+           Console.outPrintln(
                    "CMD [-jabaws " + jabawsUrl + "] executed successfully!");
            testoutput(bootstrapArgs, Arg.JABAWS,
                    "http://www.compbio.dundee.ac.uk/jabaws", jabawsUrl);
          } catch (MalformedURLException e)
          {
-           System.err.println(
+           jalview.bin.Console.errPrintln(
                    "Invalid jabaws parameter: " + jabawsUrl + " ignored");
          }
        }
        }
        else
        {
-         System.out.println("Executing setprop argument: " + setprop);
+         jalview.bin.Console
+                 .errPrintln("Executing setprop argument: " + setprop);
          if (Platform.isJS())
          {
            Cache.setProperty(setprop.substring(0, p),
          }
          else
          {
-           System.out.println("CMD [-nousagestats] executed successfully!");
+           Console.outPrintln("CMD [-nousagestats] executed successfully!");
            testoutput(argparser, Arg.NOUSAGESTATS);
          }
  
              // questionnaire
              Console.debug("Starting questionnaire url at " + url);
              desktop.checkForQuestionnaire(url);
-             System.out.println("CMD questionnaire[-" + url
+             Console.outPrintln("CMD questionnaire[-" + url
                      + "] executed successfully!");
            }
            else
          }
          else
          {
-           System.out
-                   .println("CMD [-noquestionnaire] executed successfully!");
+           Console.outPrintln(
+                   "CMD [-noquestionnaire] executed successfully!");
            testoutput(argparser, Arg.QUESTIONNAIRE);
          }
  
                          .getString("status.processing_commandline_args"),
                  progress = System.currentTimeMillis());
        }
-       System.out.println("CMD [-open " + file + "] executed successfully!");
+       Console.outPrintln("CMD [-open " + file + "] executed successfully!");
  
        if (!Platform.isJS())
        /**
                format);
        if (af == null)
        {
-         System.out.println("error");
+         Console.outPrintln("error");
        }
        else
        {
  
            if (cs != null)
            {
-             System.out.println(
+             Console.outPrintln(
                      "CMD [-colour " + data + "] executed successfully!");
            }
            af.changeColour(cs);
          {
            af.parseFeaturesFile(data,
                    AppletFormatAdapter.checkProtocol(data));
-           // System.out.println("Added " + data);
-           System.out.println(
+           // Console.outPrintln("Added " + data);
+           Console.outPrintln(
                    "CMD groups[-" + data + "]  executed successfully!");
          }
          data = aparser.getValue("features", true);
          {
            af.parseFeaturesFile(data,
                    AppletFormatAdapter.checkProtocol(data));
-           // System.out.println("Added " + data);
-           System.out.println(
+           // Console.outPrintln("Added " + data);
+           Console.outPrintln(
                    "CMD [-features " + data + "]  executed successfully!");
          }
  
          if (data != null)
          {
            af.loadJalviewDataFile(data, null, null, null);
-           // System.out.println("Added " + data);
-           System.out.println(
+           // Console.outPrintln("Added " + data);
+           Console.outPrintln(
                    "CMD [-annotations " + data + "] executed successfully!");
          }
          // set or clear the sortbytree flag.
            af.getViewport().setSortByTree(true);
            if (af.getViewport().getSortByTree())
            {
-             System.out.println("CMD [-sortbytree] executed successfully!");
+             Console.outPrintln("CMD [-sortbytree] executed successfully!");
            }
          }
          if (aparser.contains("no-annotation"))
            af.getViewport().setShowAnnotation(false);
            if (!af.getViewport().isShowAnnotation())
            {
-             System.out.println("CMD no-annotation executed successfully!");
+             Console.outPrintln("CMD no-annotation executed successfully!");
            }
          }
          if (aparser.contains("nosortbytree"))
            af.getViewport().setSortByTree(false);
            if (!af.getViewport().getSortByTree())
            {
-             System.out
-                     .println("CMD [-nosortbytree] executed successfully!");
+             Console.outPrintln(
+                     "CMD [-nosortbytree] executed successfully!");
            }
          }
          data = aparser.getValue("tree", true);
          {
            try
            {
-             System.out.println(
+             Console.outPrintln(
                      "CMD [-tree " + data + "] executed successfully!");
              NewickFile nf = new NewickFile(data,
                      AppletFormatAdapter.checkProtocol(data));
                      .setCurrentTree(af.showNewickTree(nf, data).getTree());
            } catch (IOException ex)
            {
-             System.err.println("Couldn't add tree " + data);
+             jalview.bin.Console.errPrintln("Couldn't add tree " + data);
              ex.printStackTrace(System.err);
            }
          }
          {
            // Execute the groovy script after we've done all the rendering stuff
            // and before any images or figures are generated.
-           System.out.println("Executing script " + groovyscript);
+           Console.outPrintln("Executing script " + groovyscript);
            executeGroovyScript(groovyscript, af);
-           System.out.println("CMD groovy[" + groovyscript
+           Console.outPrintln("CMD groovy[" + groovyscript
                    + "] executed successfully!");
            groovyscript = null;
          }
  
              if (outputFormat.equalsIgnoreCase("png"))
              {
-               System.out.println("Creating PNG image: " + file);
+               Console.outPrintln("Creating PNG image: " + file);
                af.createPNG(new File(file));
                imageName = (new File(file)).getName();
                continue;
              }
              else if (outputFormat.equalsIgnoreCase("svg"))
              {
-               System.out.println("Creating SVG image: " + file);
+               Console.outPrintln("Creating SVG image: " + file);
                File imageFile = new File(file);
                imageName = imageFile.getName();
                af.createSVG(imageFile);
                imageName = imageFile.getName();
                HtmlSvgOutput htmlSVG = new HtmlSvgOutput(af.alignPanel);
  
-               System.out.println("Creating HTML image: " + file);
+               Console.outPrintln("Creating HTML image: " + file);
                htmlSVG.exportHTML(file);
                continue;
              }
              {
                if (file == null)
                {
-                 System.err.println("The output html file must not be null");
+                 jalview.bin.Console.errPrintln(
+                         "The output html file must not be null");
                  return;
                }
                try
                  e.printStackTrace();
                }
                BioJsHTMLOutput bjs = new BioJsHTMLOutput(af.alignPanel);
-               System.out.println(
+               Console.outPrintln(
                        "Creating BioJS MSA Viwer HTML file: " + file);
                bjs.exportHTML(file);
                continue;
              }
              else if (outputFormat.equalsIgnoreCase("imgMap"))
              {
-               System.out.println("Creating image map: " + file);
+               Console.outPrintln("Creating image map: " + file);
                af.createImageMap(new File(file), imageName);
                continue;
              }
              else if (outputFormat.equalsIgnoreCase("eps"))
              {
                File outputFile = new File(file);
-               System.out.println(
+               Console.outPrintln(
                        "Creating EPS file: " + outputFile.getAbsolutePath());
                af.createEPS(outputFile);
                continue;
                outFormat = FileFormats.getInstance().forName(outputFormat);
              } catch (Exception formatP)
              {
-               System.out.println("Couldn't parse " + outFormat
+               Console.outPrintln("Couldn't parse " + outFormat
                        + " as a valid Jalview format string.");
              }
              if (outFormat != null)
              {
                if (!outFormat.isWritable())
                {
-                 System.out.println(
+                 Console.outPrintln(
                          "This version of Jalview does not support alignment export as "
                                  + outputFormat);
                }
                  af.saveAlignment(file, outFormat);
                  if (af.isSaveAlignmentSuccessful())
                  {
-                   System.out.println("Written alignment in "
+                   Console.outPrintln("Written alignment in "
                            + outFormat.getName() + " format to " + file);
                  }
                  else
                  {
-                   System.out.println("Error writing file " + file + " in "
+                   Console.outPrintln("Error writing file " + file + " in "
                            + outFormat.getName() + " format!!");
                  }
                }
              }
            } catch (ImageOutputException ioexc)
            {
-             System.out.println(
+             Console.outPrintln(
                      "Unexpected error whilst exporting image to " + file);
              ioexc.printStackTrace();
            }
  
          while (aparser.getSize() > 0)
          {
-           System.out.println("Unknown arg: " + aparser.nextValue());
+           Console.outPrintln("Unknown arg: " + aparser.nextValue());
          }
        }
      }
      {
        if (Cache.groovyJarsPresent())
        {
-         System.out.println("Executing script " + groovyscript);
+         Console.outPrintln("Executing script " + groovyscript);
          executeGroovyScript(groovyscript, startUpAlframe);
        }
        else
        {
-         System.err.println(
+         jalview.bin.Console.errPrintln(
                  "Sorry. Groovy Support is not available, so ignoring the provided groovy script "
                          + groovyscript);
        }
        UIManager.put("TabbedPane.tabType", "card");
        UIManager.put("TabbedPane.showTabSeparators", true);
        UIManager.put("TabbedPane.showContentSeparator", true);
 -      UIManager.put("TabbedPane.tabSeparatorsFullHeight", true);
 +      // UIManager.put("TabbedPane.tabSeparatorsFullHeight", true);
        UIManager.put("TabbedPane.tabsOverlapBorder", true);
        UIManager.put("TabbedPane.hasFullBorder", true);
        UIManager.put("TabbedPane.tabLayoutPolicy", "scroll");
    /*
    private static void showUsage()
    {
-     System.out.println(
+     jalview.bin.Console.outPrintln(
              "Usage: jalview -open [FILE] [OUTPUT_FORMAT] [OUTPUT_FILE]\n\n"
                      + "-nodisplay\tRun Jalview without User Interface.\n"
                      + "-props FILE\tUse the given Jalview properties file instead of users default.\n"
  
        } catch (Exception ex)
        {
-         System.err.println("Failed to read from STDIN into tempfile "
-                 + ((tfile == null) ? "(tempfile wasn't created)"
-                         : tfile.toString()));
+         jalview.bin.Console
+                 .errPrintln("Failed to read from STDIN into tempfile "
+                         + ((tfile == null) ? "(tempfile wasn't created)"
+                                 : tfile.toString()));
          ex.printStackTrace();
          return;
        }
          sfile = tfile.toURI().toURL();
        } catch (Exception x)
        {
-         System.err.println(
+         jalview.bin.Console.errPrintln(
                  "Unexpected Malformed URL Exception for temporary file created from STDIN: "
                          + tfile.toURI());
          x.printStackTrace();
          tfile = new File(groovyscript);
          if (!tfile.exists())
          {
-           System.err.println("File '" + groovyscript + "' does not exist.");
+           jalview.bin.Console.errPrintln(
+                   "File '" + groovyscript + "' does not exist.");
            return;
          }
          if (!tfile.canRead())
          {
-           System.err.println("File '" + groovyscript + "' cannot be read.");
+           jalview.bin.Console.errPrintln(
+                   "File '" + groovyscript + "' cannot be read.");
            return;
          }
          if (tfile.length() < 1)
          {
-           System.err.println("File '" + groovyscript + "' is empty.");
+           jalview.bin.Console
+                   .errPrintln("File '" + groovyscript + "' is empty.");
            return;
          }
          try
            sfile = tfile.getAbsoluteFile().toURI().toURL();
          } catch (Exception ex)
          {
-           System.err.println("Failed to create a file URL for "
+           jalview.bin.Console.errPrintln("Failed to create a file URL for "
                    + tfile.getAbsoluteFile());
            return;
          }
        }
      } catch (Exception e)
      {
-       System.err.println("Exception Whilst trying to execute file " + sfile
-               + " as a groovy script.");
+       jalview.bin.Console
+               .errPrintln("Exception Whilst trying to execute file " + sfile
+                       + " as a groovy script.");
        e.printStackTrace(System.err);
  
      }
        {
          if (exitcode == 0)
          {
-           System.out.println(message);
+           Console.outPrintln(message);
          }
          else
          {
-           System.err.println(message);
+           jalview.bin.Console.errPrintln(message);
          }
        }
      }
      if (yes && ((s1 == null && s2 == null)
              || (s1 != null && s1.equals(s2))))
      {
-       System.out.println("[TESTOUTPUT] arg " + a.argString() + "='" + s1
+       Console.outPrintln("[TESTOUTPUT] arg " + a.argString() + "='" + s1
                + "' was set");
      }
    }
      {
        message = a.argString() + (yes ? " was set" : " was not set");
      }
-     System.out.println("[TESTOUTPUT] arg " + message);
+     Console.outPrintln("[TESTOUTPUT] arg " + message);
    }
  }
@@@ -717,7 -717,7 +717,7 @@@ public class JvOptionPane extends JOpti
  
    private static void outputMessage(Object message)
    {
-     System.out.println(">>> JOption Message : " + message.toString());
+     jalview.bin.Console.outPrintln(">>> JOption Message : " + message.toString());
    }
  
    public static Object getMockResponse()
  
    private void internalDialogHandleResponse()
    {
 -    String responseString = (String) this.getValue();
 +    Object value = this.getValue();
 +    if (value == null
 +            || (value instanceof Integer && (Integer) value == -1))
 +    {
 +      return;
 +    }
 +    String responseString = value.toString();
      int response = ourOptions.indexOf(responseString);
  
      if (!Platform.isJS())