X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fmain%2FMain.java;h=1ee88a00f34a4caed5dcf0830311b3995d119eb4;hb=dc79f593c85267db340e09c23d4e7c4b6d35043b;hp=be543ebe2bfd17e65bb23c89411e5cfac68447ba;hpb=7ccb1fcb746198ee1417bb2f92c846132bf6bc96;p=jSite2.git diff --git a/src/net/pterodactylus/jsite/main/Main.java b/src/net/pterodactylus/jsite/main/Main.java index be543eb..1ee88a0 100644 --- a/src/net/pterodactylus/jsite/main/Main.java +++ b/src/net/pterodactylus/jsite/main/Main.java @@ -21,6 +21,9 @@ package net.pterodactylus.jsite.main; import java.io.File; +import javax.swing.UIManager; +import javax.swing.UIManager.LookAndFeelInfo; + import net.pterodactylus.jsite.core.CoreImpl; import net.pterodactylus.jsite.core.NodeManager; import net.pterodactylus.jsite.core.ProjectManager; @@ -52,17 +55,21 @@ public class Main { private void start() { Logging.setup("jSite"); + /* include a couple known Look & Feels. */ + maybeAddLookAndFeel("Substance", "org.jvnet.substance.SubstanceLookAndFeel"); + CoreImpl core = new CoreImpl(); String configDirectory = System.getProperty("user.home") + File.separator + ".jSite"; - ProjectManager projectManager = new ProjectManager(configDirectory); - core.setProjectManager(projectManager); - NodeManager nodeManager = new NodeManager("jSite-" + Version.getVersion(), configDirectory); core.setNodeManager(nodeManager); nodeManager.addNodeListener(core); + ProjectManager projectManager = new ProjectManager(configDirectory); + core.setProjectManager(projectManager); + projectManager.setNodeManager(nodeManager); + RequestManager requestManager = new RequestManager(); core.setRequestManager(requestManager); nodeManager.addNodeListener(requestManager); @@ -76,4 +83,26 @@ public class Main { core.start(); } + /** + * Tries to load the class with the given name and includes the look & feel + * in the UIManager, if it exists. + * + * @param name + * The name of the look & feel + * @param className + * The name of the look & feel’s main class + */ + private void maybeAddLookAndFeel(String name, String className) { + try { + Class.forName(className); + LookAndFeelInfo[] installedLookAndFeelds = UIManager.getInstalledLookAndFeels(); + LookAndFeelInfo[] newLookAndFeels = new LookAndFeelInfo[installedLookAndFeelds.length + 1]; + System.arraycopy(installedLookAndFeelds, 0, newLookAndFeels, 0, installedLookAndFeelds.length); + newLookAndFeels[installedLookAndFeelds.length] = new UIManager.LookAndFeelInfo(name, className); + UIManager.setInstalledLookAndFeels(newLookAndFeels); + } catch (ClassNotFoundException e) { + /* okay, it doesn't exist, ignore. */ + } + } + }