*/
package jalview.bin;
+import java.awt.Color;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
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;
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");
}
/*
System.out.println("Launcher version: " + val);
}
- try
- {
- Cache.initLogger();
- } catch (NoClassDefFoundError error)
- {
- error.printStackTrace();
- System.out.println("\nEssential logging libraries not found."
- + "\nUse: java -classpath \"$PATH_TO_LIB$/*:$PATH_TO_CLASSES$\" jalview.bin.Jalview");
- System.exit(0);
- }
-
// report Jalview version
Cache.loadBuildProperties(true);
System.setProperty("http.agent",
"Jalview Desktop/" + Cache.getDefault("VERSION", "Unknown"));
+ try
+ {
+ Console.initLogger();
+ } catch (NoClassDefFoundError error)
+ {
+ error.printStackTrace();
+ System.out.println("\nEssential logging libraries not found."
+ + "\nUse: java -classpath \"$PATH_TO_LIB$/*:$PATH_TO_CLASSES$\" jalview.bin.Jalview");
+ System.exit(0);
+ }
+
desktop = null;
setLookAndFeel();
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();
}
{
// 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!");
// "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);
}
.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();
+ }
}
}
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");
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)
{
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;
}
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;
}
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;
}
"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",
@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);