JAL-3416 slightly improved colours for tabber pane tabs
[jalview.git] / src / jalview / bin / Jalview.java
index 3d20d3c..51e9af9 100755 (executable)
@@ -49,6 +49,7 @@ import java.util.Vector;
 import java.util.logging.ConsoleHandler;
 import java.util.logging.Level;
 import java.util.logging.Logger;
+import java.util.stream.Collectors;
 
 import javax.swing.JDialog;
 import javax.swing.JFrame;
@@ -301,8 +302,11 @@ public class Jalview
       System.setSecurityManager(null);
     }
 
-    if (args == null)
+    if (args == null || args.length == 0 || (args.length == 1
+            && (args[0] == null || args[0].length() == 0)))
+    {
       args = new String[] {};
+    }
 
     // get args needed before proper ArgParser
     bootstrapArgs = BootstrapArgs.getBootstrapArgs(args);
@@ -345,6 +349,7 @@ public class Jalview
       final File appdir = new File(appdirString);
       new Thread()
       {
+
         @Override
         public void run()
         {
@@ -492,10 +497,12 @@ public class Jalview
      * @j2sIgnore
      */
     {
-      if (bootstrapArgs.containsType(Type.HELP))
+      if (bootstrapArgs.contains(Arg.HELP))
       {
-        List<Arg> helpArgs = bootstrapArgs.getArgsOfType(Type.HELP);
-        System.out.println(Arg.usage(helpArgs));
+        List<Map.Entry<Type, String>> helpArgs = bootstrapArgs
+                .getList(Arg.HELP);
+        System.out.println(Arg.usage(helpArgs.stream().map(e -> e.getKey())
+                .collect(Collectors.toList())));
         Jalview.exit(null, 0);
       }
       if (aparser.contains("help") || aparser.contains("h"))
@@ -767,7 +774,17 @@ public class Jalview
     {
       if (headlessArg)
       {
-        Jalview.exit("Successfully completed commands in headless mode", 0);
+        if (argparser.getBoolean(Arg.NOQUIT))
+        {
+          Console.warn(
+                  "Completed " + Arg.HEADLESS.getName() + " commands, but "
+                          + Arg.NOQUIT + " is set so not quitting!");
+        }
+        else
+        {
+          Jalview.exit("Successfully completed commands in headless mode",
+                  0);
+        }
       }
       Console.info("Successfully completed commands");
     }
@@ -1426,6 +1443,8 @@ public class Jalview
       UIManager.put("TabbedPane.smoothScrolling", true);
       UIManager.put("TabbedPane.tabWidthMode", "compact");
       UIManager.put("TabbedPane.selectedBackground", Color.white);
+      UIManager.put("TabbedPane.background", new Color(236, 236, 236));
+      UIManager.put("TabbedPane.hoverColor", Color.lightGray);
     }
 
     Desktop.setLiveDragMode(Cache.getDefault("FLAT_LIVE_DRAG_MODE", true));
@@ -1463,6 +1482,7 @@ public class Jalview
     return set;
   }
 
+  /*
   private static void showUsage()
   {
     System.out.println(
@@ -1505,6 +1525,7 @@ public class Jalview
                     + "-jvmmemmax=MAXMEMORY\tOnly available with standalone executable jar or jalview.bin.Launcher. Limit maximum heap size (memory) to MAXMEMORY. MAXMEMORY can be specified in bytes, kilobytes(k), megabytes(m), gigabytes(g) or if you're lucky enough, terabytes(t). This defaults to 32g if total physical memory can be detected, or to 8g if total physical memory cannot be detected. See https://www.jalview.org/help/html/memory.html for more details.\n"
                     + "\n~Read documentation in Application or visit https://www.jalview.org for description of Features and Annotations file~\n\n");
   }
+  */
 
   private static void startUsageStats(final Desktop desktop)
   {
@@ -1698,14 +1719,40 @@ public class Jalview
 
   public static void exit(String message, int exitcode)
   {
-    Console.debug("Using Jalview.exit");
-    if (message != null)
-      if (exitcode == 0)
-        Console.info(message);
-      else
-        Console.error(message);
+    if (Console.log == null)
+    {
+      // Don't start the logger just to exit!
+      if (message != null)
+      {
+        if (exitcode == 0)
+        {
+          System.out.println(message);
+        }
+        else
+        {
+          System.err.println(message);
+        }
+      }
+    }
+    else
+    {
+      Console.debug("Using Jalview.exit");
+      if (message != null)
+      {
+        if (exitcode == 0)
+        {
+          Console.info(message);
+        }
+        else
+        {
+          Console.error(message);
+        }
+      }
+    }
     if (exitcode > -1)
+    {
       System.exit(exitcode);
+    }
   }
 
   /*