X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fgui%2FSwingInterface.java;h=65e1eddd99ca9681e29e95c31c357813e3bab698;hb=9eec7156e8223a363d6f30392f66dbc8a4aa41cd;hp=dff6f3a2ae3c6942bce6f424ec0c68441282b519;hpb=83250636518e229320ac696ff580b710ea8207b7;p=jSite2.git diff --git a/src/net/pterodactylus/jsite/gui/SwingInterface.java b/src/net/pterodactylus/jsite/gui/SwingInterface.java index dff6f3a..65e1edd 100644 --- a/src/net/pterodactylus/jsite/gui/SwingInterface.java +++ b/src/net/pterodactylus/jsite/gui/SwingInterface.java @@ -47,8 +47,10 @@ import net.pterodactylus.jsite.core.Core; import net.pterodactylus.jsite.core.CoreListener; import net.pterodactylus.jsite.core.Node; import net.pterodactylus.jsite.core.Project; +import net.pterodactylus.jsite.core.Request; import net.pterodactylus.jsite.i18n.I18n; import net.pterodactylus.jsite.i18n.gui.I18nAction; +import net.pterodactylus.util.image.IconLoader; import net.pterodactylus.util.io.Closer; import net.pterodactylus.util.logging.Logging; import net.pterodactylus.util.logging.LoggingListener; @@ -140,7 +142,7 @@ public class SwingInterface implements CoreListener, LoggingListener { private ConfigurationDialog configurationDialog; /** The list of all defined nodes. */ - private List nodeList; + private List nodeList = Collections.synchronizedList(new ArrayList()); // // CONFIGURATION @@ -450,7 +452,7 @@ public class SwingInterface implements CoreListener, LoggingListener { * Initializes all actions. */ private void initActions() { - configureAction = new I18nAction("mainWindow.menu.jSite.configure") { + configureAction = new I18nAction("mainWindow.menu.jSite.configure", IconLoader.loadIcon("/preferences-system.png")) { /** * {@inheritDoc} @@ -470,7 +472,7 @@ public class SwingInterface implements CoreListener, LoggingListener { importConfig(); } }; - quitAction = new I18nAction("mainWindow.menu.jSite.quit") { + quitAction = new I18nAction("mainWindow.menu.jSite.quit", IconLoader.loadIcon("/system-log-out.png")) { /** * {@inheritDoc} @@ -622,6 +624,8 @@ public class SwingInterface implements CoreListener, LoggingListener { * Quits jSite. */ private void quit() { + /* TODO - ask */ + core.stop(); saveConfig(); System.exit(0); } @@ -633,6 +637,7 @@ public class SwingInterface implements CoreListener, LoggingListener { * The list of nodes */ private void rebuildNodeActions(List nodes) { + logger.fine("rebuilding node actions…"); nodeConnectActions.clear(); nodeNodeConnectActions.clear(); nodeConnectActionNodes.clear(); @@ -640,6 +645,7 @@ public class SwingInterface implements CoreListener, LoggingListener { nodeNodeDisconnectActions.clear(); nodeDisconnectActionNodes.clear(); for (Node node: nodes) { + logger.finer("adding node “" + node + "” to menu"); Action nodeConnectAction = new AbstractAction(node.getName()) { /** @@ -845,8 +851,6 @@ public class SwingInterface implements CoreListener, LoggingListener { * {@inheritDoc} */ public void coreLoaded() { - this.nodeList = core.getNodes(); - manageNodesDialog.setNodeList(nodeList); mainWindow.setVisible(true); mainWindow.setStatusBarText(I18n.get("mainWindow.statusBar.coreLoaded")); } @@ -861,6 +865,27 @@ public class SwingInterface implements CoreListener, LoggingListener { /** * {@inheritDoc} */ + public void nodeAdded(Node node) { + logger.log(Level.INFO, "node added: " + node); + nodeList.add(node); + manageNodesDialog.setNodeList(nodeList); + rebuildNodeActions(nodeList); + mainWindow.refreshNodeMenuItems(); + } + + /** + * {@inheritDoc} + */ + public void nodeRemoved(Node node) { + logger.log(Level.INFO, "node removed: " + node); + nodeList.remove(node); + rebuildNodeActions(nodeList); + mainWindow.refreshNodeMenuItems(); + } + + /** + * {@inheritDoc} + */ public void nodeConnecting(Node node) { Action nodeConnectAction = nodeNodeConnectActions.get(node); nodeConnectActions.remove(nodeConnectAction); @@ -874,6 +899,7 @@ public class SwingInterface implements CoreListener, LoggingListener { public void nodeConnected(Node node) { Action nodeDisconnectAction = nodeNodeDisconnectActions.get(node); nodeDisconnectActions.add(nodeDisconnectAction); + mainWindow.setStatusBarText(I18n.get("mainWindow.statusBar.connectedToNode", node.getName(), node.getHostname(), node.getPort())); mainWindow.refreshNodeMenuItems(); } @@ -885,9 +911,25 @@ public class SwingInterface implements CoreListener, LoggingListener { nodeConnectActions.add(nodeConnectAction); Action nodeDisconnectAction = nodeNodeDisconnectActions.get(node); nodeDisconnectActions.remove(nodeDisconnectAction); + mainWindow.setStatusBarText(I18n.get("mainWindow.statusBar.disconnectedFromNode", node.getName(), node.getHostname(), node.getPort())); mainWindow.refreshNodeMenuItems(); } + /** + * {@inheritDoc} + */ + public void requestAdded(Node node, Request request) { + logger.log(Level.INFO, "request added to node: " + request + ", " + node); + /* TODO - implement */ + } + + /** + * {@inheritDoc} + */ + public void requestProgressed(Request request, int totalBlocks, int requiredBlocks, int successfulBlocks, int failedBlocks, int fatallyFailedBlocks, boolean finalizedTotal) { + /* TODO - update table model */ + } + // // INTERFACE LoggingListener //