X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FJalview.java;h=fd1783aacac7196b200044938bdc9eff73c04c5d;hb=dceb54d45477a8af0632b703c53254c9a80a11db;hp=f01cbb63aa70eda225dbd5641a51b572574b116b;hpb=11ddaefa4bdef4cf3fd8fa4436e2a2a9aed1e090;p=jalview.git diff --git a/src/jalview/bin/Jalview.java b/src/jalview/bin/Jalview.java index f01cbb6..fd1783a 100755 --- a/src/jalview/bin/Jalview.java +++ b/src/jalview/bin/Jalview.java @@ -20,6 +20,7 @@ */ package jalview.bin; +import java.awt.Color; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; @@ -44,11 +45,15 @@ import java.util.logging.ConsoleHandler; import java.util.logging.Level; import java.util.logging.Logger; +import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.UIManager.LookAndFeelInfo; +import com.formdev.flatlaf.FlatLightLaf; +import com.formdev.flatlaf.util.SystemInfo; import com.threerings.getdown.util.LaunchUtil; +//import edu.stanford.ejalbert.launching.IBrowserLaunching; import groovy.lang.Binding; import groovy.util.GroovyScriptEngine; import jalview.ext.so.SequenceOntology; @@ -95,6 +100,10 @@ public class Jalview static { Platform.getURLCommandArguments(); + Platform.addJ2SDirectDatabaseCall("https://www.jalview.org"); + Platform.addJ2SDirectDatabaseCall("http://www.jalview.org"); + Platform.addJ2SDirectDatabaseCall("http://www.compbio.dundee.ac.uk"); + Platform.addJ2SDirectDatabaseCall("https://www.compbio.dundee.ac.uk"); } /* @@ -368,7 +377,7 @@ public class Jalview try { - Cache.initLogger(); + Console.initLogger(); } catch (NoClassDefFoundError error) { error.printStackTrace(); @@ -402,13 +411,13 @@ public class Jalview JalviewTaskbar.setTaskbar(this); } catch (Exception e) { - Cache.info("Cannot set Taskbar"); - Cache.error(e.getMessage()); + Console.info("Cannot set Taskbar"); + Console.error(e.getMessage()); // e.printStackTrace(); } catch (Throwable t) { - Cache.info("Cannot set Taskbar"); - Cache.error(t.getMessage()); + Console.info("Cannot set Taskbar"); + Console.error(t.getMessage()); // t.printStackTrace(); } @@ -444,7 +453,7 @@ public class Jalview { // Start the desktop questionnaire prompter with the specified // questionnaire - Cache.debug("Starting questionnaire url at " + url); + Console.debug("Starting questionnaire url at " + url); desktop.checkForQuestionnaire(url); System.out.println("CMD questionnaire[-" + url + "] executed successfully!"); @@ -459,7 +468,7 @@ public class Jalview // "http://anaplog.compbio.dundee.ac.uk/cgi-bin/questionnaire.pl"; // // String defurl = "https://www.jalview.org/cgi-bin/questionnaire.pl"; - Cache.debug( + Console.debug( "Starting questionnaire with default url: " + defurl); desktop.checkForQuestionnaire(defurl); } @@ -471,12 +480,17 @@ public class Jalview .println("CMD [-noquestionnaire] executed successfully!"); } - if (!aparser.contains("nonews")) + if (!aparser.contains("nonews") + || Cache.getProperty("NONEWS") == null) { desktop.checkForNews(); } - BioJsHTMLOutput.updateBioJS(); + if (!aparser.contains("nohtmltemplates") + || Cache.getProperty("NOHTMLTEMPLATES") == null) + { + BioJsHTMLOutput.updateBioJS(); + } } } @@ -852,8 +866,8 @@ public class Jalview private static void setLookAndFeel() { - // property laf = "crossplatform", "system", "gtk", "metal", "nimbus" or - // "mac" + // property laf = "crossplatform", "system", "gtk", "metal", "nimbus", + // "mac" or "flat" // If not set (or chosen laf fails), use the normal SystemLaF and if on Mac, // try Quaqua/Vaqua. String lafProp = System.getProperty("laf"); @@ -874,62 +888,69 @@ public class Jalview lafSet = setCrossPlatformLookAndFeel(); if (!lafSet) { - Cache.error("Could not set requested laf=" + laf); + Console.error("Could not set requested laf=" + laf); } break; case "system": lafSet = setSystemLookAndFeel(); if (!lafSet) { - Cache.error("Could not set requested laf=" + laf); + Console.error("Could not set requested laf=" + laf); } break; case "gtk": lafSet = setGtkLookAndFeel(); if (!lafSet) { - Cache.error("Could not set requested laf=" + laf); + Console.error("Could not set requested laf=" + laf); } break; case "metal": lafSet = setMetalLookAndFeel(); if (!lafSet) { - Cache.error("Could not set requested laf=" + laf); + Console.error("Could not set requested laf=" + laf); } break; case "nimbus": lafSet = setNimbusLookAndFeel(); if (!lafSet) { - Cache.error("Could not set requested laf=" + laf); + Console.error("Could not set requested laf=" + laf); + } + break; + case "flat": + lafSet = setFlatLookAndFeel(); + if (!lafSet) + { + Console.error("Could not set requested laf=" + laf); } break; case "quaqua": lafSet = setQuaquaLookAndFeel(); if (!lafSet) { - Cache.error("Could not set requested laf=" + laf); + Console.error("Could not set requested laf=" + laf); } break; case "vaqua": lafSet = setVaquaLookAndFeel(); if (!lafSet) { - Cache.error("Could not set requested laf=" + laf); + Console.error("Could not set requested laf=" + laf); } break; case "mac": lafSet = setMacLookAndFeel(); if (!lafSet) { - Cache.error("Could not set requested laf=" + laf); + Console.error("Could not set requested laf=" + laf); } break; case "none": break; default: - Cache.error("Requested laf=" + laf + " not implemented"); + Console.error("Requested laf=" + laf + " not implemented"); } if (!lafSet) { @@ -955,9 +976,9 @@ public class Jalview set = true; } catch (Exception ex) { - Cache.error("Unexpected Look and Feel Exception"); - Cache.error(ex.getMessage()); - Cache.debug(Cache.getStackTraceString(ex)); + Console.error("Unexpected Look and Feel Exception"); + Console.error(ex.getMessage()); + Console.debug(Cache.getStackTraceString(ex)); } return set; } @@ -971,9 +992,9 @@ public class Jalview set = true; } catch (Exception ex) { - Cache.error("Unexpected Look and Feel Exception"); - Cache.error(ex.getMessage()); - Cache.debug(Cache.getStackTraceString(ex)); + Console.error("Unexpected Look and Feel Exception"); + Console.error(ex.getMessage()); + Console.debug(Cache.getStackTraceString(ex)); } return set; } @@ -1000,9 +1021,9 @@ public class Jalview set = true; } catch (Exception ex) { - Cache.error("Unexpected Look and Feel Exception"); - Cache.error(ex.getMessage()); - Cache.debug(Cache.getStackTraceString(ex)); + Console.error("Unexpected Look and Feel Exception"); + Console.error(ex.getMessage()); + Console.debug(Cache.getStackTraceString(ex)); } return set; } @@ -1025,6 +1046,45 @@ public class Jalview "javax.swing.plaf.nimbus.NimbusLookAndFeel", false); } + private static boolean setFlatLookAndFeel() + { + boolean set = setSpecificLookAndFeel("flatlaf light", + "com.formdev.flatlaf.FlatLightLaf", false); + if (set) + { + if (Platform.isMac()) + { + System.setProperty("apple.laf.useScreenMenuBar", "true"); + System.setProperty("apple.awt.application.name", + ChannelProperties.getProperty("app_name")); + System.setProperty("apple.awt.application.appearance", "system"); + if (SystemInfo.isMacFullWindowContentSupported + && Desktop.desktop != null) + { + Desktop.desktop.getRootPane() + .putClientProperty("apple.awt.fullWindowContent", true); + Desktop.desktop.getRootPane() + .putClientProperty("apple.awt.transparentTitleBar", true); + } + + SwingUtilities.invokeLater(() -> { + FlatLightLaf.setup(); + }); + } + + UIManager.put("TabbedPane.showTabSeparators", true); + UIManager.put("TabbedPane.tabSeparatorsFullHeight", true); + UIManager.put("TabbedPane.tabsOverlapBorder", true); + // UIManager.put("TabbedPane.hasFullBorder", true); + UIManager.put("TabbedPane.tabLayoutPolicy", "scroll"); + UIManager.put("TabbedPane.scrollButtonsPolicy", "asNeeded"); + UIManager.put("TabbedPane.smoothScrolling", true); + UIManager.put("TabbedPane.tabWidthMode", "compact"); + UIManager.put("TabbedPane.selectedBackground", Color.white); + } + return set; + } + private static boolean setQuaquaLookAndFeel() { return setSpecificLookAndFeel("quaqua", @@ -1112,16 +1172,17 @@ public class Jalview @Override public void run() { - Cache.debug("Initialising googletracker for usage stats."); + Console.debug( + "Initialising googletracker for usage stats."); Cache.initGoogleTracker(); - Cache.debug("Tracking enabled."); + Console.debug("Tracking enabled."); } }, new Runnable() { @Override public void run() { - Cache.debug("Not enabling Google Tracking."); + Console.debug("Not enabling Google Tracking."); } }, null, true); desktop.addDialogThread(prompter);