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.InsertManager;
import net.pterodactylus.jsite.core.NodeManager;
import net.pterodactylus.jsite.core.ProjectManager;
import net.pterodactylus.jsite.core.RequestManager;
/**
* Main class that is called by the VM.
- *
+ *
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class Main {
/**
* Main entry method for the VM.
- *
+ *
* @param args
* The command-line arguments
*/
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";
core.setProjectManager(projectManager);
projectManager.setNodeManager(nodeManager);
+ InsertManager insertManager = new InsertManager();
+ core.setInsertManager(insertManager);
+ insertManager.addInsertListener(core);
+
RequestManager requestManager = new RequestManager();
core.setRequestManager(requestManager);
nodeManager.addNodeListener(requestManager);
/**
* 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. */
+ @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]));
}
}