package net.pterodactylus.jsite.main;
+import java.io.File;
+
+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.gui.SwingInterface;
+import net.pterodactylus.util.logging.Logging;
+
/**
* Main class that is called by the VM.
*
* The command-line arguments
*/
public static void main(String[] args) {
+ new Main().start();
+ }
+
+ /**
+ * Starts the core and the default {@link SwingInterface}.
+ */
+ private void start() {
+ Logging.setup("jSite");
+
+ 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);
+
+ RequestManager requestManager = new RequestManager();
+ core.setRequestManager(requestManager);
+ nodeManager.addNodeListener(requestManager);
+ requestManager.setNodeManager(nodeManager);
+ requestManager.addRequestListener(core);
+
+ SwingInterface swingInterface = new SwingInterface(core, configDirectory);
+ core.addCoreListener(swingInterface);
+ Logging.addLoggingListener(swingInterface);
+
+ core.start();
}
}