/** The project manager. */
private ProjectManager projectManager;
- /** The node list. */
- private List<Node> configuredNodes = new ArrayList<Node>();
-
- /** List of currently connected nodes. */
- private List<Node> connectedNodes = new ArrayList<Node>();
+ /** The node manager. */
+ private NodeManager nodeManager;
//
// LISTENER MANAGEMENT
}
/**
+ * Notifies all listeners that the projects were loaded successfully.
+ *
+ * @param directory
+ * The directory the projects were loaded from
+ */
+ private void fireLoadingProjectsDone(String directory) {
+ for (CoreListener coreListener: coreListeners) {
+ coreListener.loadingProjectsDone(directory);
+ }
+ }
+
+ /**
* Notifies all core listeners that loading the projects from the given
* directory has failed.
*
}
/**
+ * Notifies all listeners that the nodes were successfully loaded.
+ *
+ * @param directory
+ * The directory the nodes were loaded from
+ */
+ private void fireLoadingNodesDone(String directory) {
+ for (CoreListener coreListener: coreListeners) {
+ coreListener.loadingNodesDone(directory);
+ }
+ }
+
+ /**
+ * Notifies all listeners that loading the nodes has failed.
+ *
+ * @param directory
+ * The directory the nodes were loaded from
+ * @param throwable
+ * The exception that occured while loading the nodes
+ */
+ private void fireLoadingNodesFailed(String directory, Throwable throwable) {
+ for (CoreListener coreListener: coreListeners) {
+ coreListener.loadingNodesFailed(directory, throwable);
+ }
+ }
+
+ /**
+ * Notifies all listeners that the nodes were saved successfully.
+ *
+ * @param directory
+ * The directory the nodes were saved to
+ */
+ private void fireSavingNodesDone(String directory) {
+ for (CoreListener coreListener: coreListeners) {
+ coreListener.savingNodesDone(directory);
+ }
+ }
+
+ /**
+ * Notifies all listeners that saving the nodes has failed.
+ *
+ * @param directory
+ * The directory the nodes were saved to
+ * @param throwable
+ * The exception that occured while saving the nodes
+ */
+ private void fireSavingNodesFailed(String directory, Throwable throwable) {
+ for (CoreListener coreListener: coreListeners) {
+ coreListener.savingProjectsFailed(directory, throwable);
+ }
+ }
+
+ /**
* Notifies all core listeners that the core has loaded and is ready to run.
*/
private void fireCoreLoaded() {
}
/**
+ * Returns the node manager.
+ *
+ * @return The node manager
+ */
+ public NodeManager getNodeManager() {
+ return nodeManager;
+ }
+
+ /**
+ * Sets the node manager to use.
+ *
+ * @param nodeManager
+ * The node manager to use
+ */
+ public void setNodeManager(NodeManager nodeManager) {
+ this.nodeManager = nodeManager;
+ }
+
+ /**
* Returns the list of all configured nodes.
*
* @return All configured nodes
*/
public List<Node> getNodes() {
- return configuredNodes;
+ return nodeManager.getNodes();
}
/**
* node, <code>false</code> otherwise
*/
public boolean isNodeConnected(Node node) {
- return connectedNodes.contains(node);
+ return nodeManager.hasNode(node);
}
//
public void start() {
try {
projectManager.load();
+ fireLoadingProjectsDone(projectManager.getDirectory());
} catch (IOException ioe1) {
fireLoadingProjectsFailed(projectManager.getDirectory(), ioe1);
}
+ try {
+ nodeManager.load();
+ fireLoadingNodesDone(nodeManager.getDirectory());
+ } catch (IOException ioe1) {
+ fireLoadingNodesFailed(nodeManager.getDirectory(), ioe1);
+ }
fireCoreLoaded();
}
} catch (IOException ioe1) {
fireSavingProjectsFailed(projectManager.getDirectory(), ioe1);
}
+ try {
+ nodeManager.save();
+ fireSavingNodesDone(nodeManager.getDirectory());
+ } catch (IOException ioe1) {
+ fireSavingNodesFailed(nodeManager.getDirectory(), ioe1);
+ }
fireCoreStopped();
}