move project directory
[jSite2.git] / src / net / pterodactylus / jsite / main / Main.java
index 1ee88a0..e5e0030 100644 (file)
 package net.pterodactylus.jsite.main;
 
 import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 
 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;
 import net.pterodactylus.jsite.core.RequestManager;
+import net.pterodactylus.jsite.core.project.ProjectManager;
 import net.pterodactylus.jsite.gui.SwingInterface;
 import net.pterodactylus.util.logging.Logging;
 
@@ -35,7 +38,6 @@ import net.pterodactylus.util.logging.Logging;
  * Main class that is called by the VM.
  * 
  * @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
  */
 public class Main {
 
@@ -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<LookAndFeelInfo> allLookAndFeelInfos = new ArrayList<LookAndFeelInfo>(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]));
        }
 
 }