From 57c2535880c2404a535308ffe0c176076be1c6dd Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Wed, 21 May 2008 17:05:53 +0000 Subject: [PATCH] prepare custom look & feel loading for maybe later git-svn-id: http://trooper/svn/projects/jSite/trunk@921 c3eda9e8-030b-0410-8277-bc7414b0a119 --- src/net/pterodactylus/jsite/main/Main.java | 38 ++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/src/net/pterodactylus/jsite/main/Main.java b/src/net/pterodactylus/jsite/main/Main.java index 1ee88a0..151c6b1 100644 --- a/src/net/pterodactylus/jsite/main/Main.java +++ b/src/net/pterodactylus/jsite/main/Main.java @@ -20,6 +20,8 @@ package net.pterodactylus.jsite.main; import java.io.File; +import java.util.Arrays; +import java.util.List; import javax.swing.UIManager; import javax.swing.UIManager.LookAndFeelInfo; @@ -55,9 +57,6 @@ 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"; @@ -92,17 +91,30 @@ public class Main { * @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. */ + @SuppressWarnings("unused") + private void addLookAndFeel(String name, String className) { + addLookAndFeels(new LookAndFeelInfo(name, className)); + } + + /** + * Tries to load each look & feel and adds it to the list of installed look & + * feels. + * + * @see UIManager#setInstalledLookAndFeels(LookAndFeelInfo[]) + * @param lookAndFeelInfos + * The look & feels to add + */ + private void addLookAndFeels(LookAndFeelInfo... lookAndFeelInfos) { + List allLookAndFeelInfos = Arrays.asList(UIManager.getInstalledLookAndFeels()); + for (LookAndFeelInfo lookAndFeelInfo: lookAndFeelInfos) { + try { + Class.forName(lookAndFeelInfo.getClassName()); + allLookAndFeelInfos.add(lookAndFeelInfo); + } catch (ClassNotFoundException e) { + /* okay, it doesn't exist, ignore. */ + } } + UIManager.setInstalledLookAndFeels(allLookAndFeelInfos.toArray(new LookAndFeelInfo[0])); } } -- 2.7.4