X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fgui%2FSwingInterface.java;h=65fcebeebd356d3d6f2d5155336436dc144cefc5;hb=e99f6d1dafdf8733125537e8ab36d0fedc325630;hp=65e1eddd99ca9681e29e95c31c357813e3bab698;hpb=9eec7156e8223a363d6f30392f66dbc8a4aa41cd;p=jSite2.git diff --git a/src/net/pterodactylus/jsite/gui/SwingInterface.java b/src/net/pterodactylus/jsite/gui/SwingInterface.java index 65e1edd..65fcebe 100644 --- a/src/net/pterodactylus/jsite/gui/SwingInterface.java +++ b/src/net/pterodactylus/jsite/gui/SwingInterface.java @@ -144,6 +144,9 @@ public class SwingInterface implements CoreListener, LoggingListener { /** The list of all defined nodes. */ private List nodeList = Collections.synchronizedList(new ArrayList()); + /** The request table model. */ + private RequestTableModel requestTableModel = new RequestTableModel(); + // // CONFIGURATION // @@ -163,6 +166,18 @@ public class SwingInterface implements CoreListener, LoggingListener { /** The class name of the look and feel. */ private String lookAndFeel; + /** X coordinate of the main window. */ + private int mainWindowX = -1; + + /** Y coordinate of the main window. */ + private int mainWindowY = -1; + + /** Width of the main window. */ + private int mainWindowWidth = -1; + + /** Height of the main window. */ + private int mainWindowHeight = -1; + /** * Creates a new swing interface. * @@ -202,6 +217,10 @@ public class SwingInterface implements CoreListener, LoggingListener { initDialogs(); mainWindow = new MainWindow(this); mainWindow.setAdvancedMode(advancedMode); + if ((mainWindowX != -1) && (mainWindowY != -1) && (mainWindowWidth != -1) && (mainWindowHeight != -1)) { + mainWindow.setLocation(mainWindowX, mainWindowY); + mainWindow.setSize(mainWindowWidth, mainWindowHeight); + } logWindow = new LogWindow(); } @@ -354,6 +373,15 @@ public class SwingInterface implements CoreListener, LoggingListener { return deleteProjectAction; } + /** + * Returns the request table model. + * + * @return The request table model + */ + RequestTableModel getRequestTableModel() { + return requestTableModel; + } + // // ACTIONS // @@ -406,6 +434,18 @@ public class SwingInterface implements CoreListener, LoggingListener { if (configProperties.containsKey("language")) { I18n.setLocale(new Locale(configProperties.getProperty("language"))); } + if (configProperties.containsKey("mainWindowX")) { + mainWindowX = Integer.valueOf(configProperties.getProperty("mainWindowX")); + } + if (configProperties.containsKey("mainWindowY")) { + mainWindowY = Integer.valueOf(configProperties.getProperty("mainWindowY")); + } + if (configProperties.containsKey("mainWindowWidth")) { + mainWindowWidth = Integer.valueOf(configProperties.getProperty("mainWindowWidth")); + } + if (configProperties.containsKey("mainWindowHeight")) { + mainWindowHeight = Integer.valueOf(configProperties.getProperty("mainWindowHeight")); + } } /** @@ -437,6 +477,10 @@ public class SwingInterface implements CoreListener, LoggingListener { configProperties.setProperty("lookAndFeel", lookAndFeel); } configProperties.setProperty("language", I18n.getLocale().getLanguage()); + configProperties.setProperty("mainWindowX", String.valueOf(mainWindowX)); + configProperties.setProperty("mainWindowY", String.valueOf(mainWindowY)); + configProperties.setProperty("mainWindowWidth", String.valueOf(mainWindowWidth)); + configProperties.setProperty("mainWindowHeight", String.valueOf(mainWindowHeight)); FileOutputStream configOutputStream = null; try { configOutputStream = new FileOutputStream(configFile); @@ -626,6 +670,10 @@ public class SwingInterface implements CoreListener, LoggingListener { private void quit() { /* TODO - ask */ core.stop(); + mainWindowX = mainWindow.getX(); + mainWindowY = mainWindow.getY(); + mainWindowWidth = mainWindow.getWidth(); + mainWindowHeight = mainWindow.getHeight(); saveConfig(); System.exit(0); } @@ -645,7 +693,7 @@ public class SwingInterface implements CoreListener, LoggingListener { nodeNodeDisconnectActions.clear(); nodeDisconnectActionNodes.clear(); for (Node node: nodes) { - logger.finer("adding node “" + node + "” to menu"); + logger.finer("adding node “" + node + "” to menus"); Action nodeConnectAction = new AbstractAction(node.getName()) { /** @@ -671,7 +719,7 @@ public class SwingInterface implements CoreListener, LoggingListener { nodeDisconnect(node); } }; -// nodeDisconnectActions.add(nodeDisconnectAction); + // nodeDisconnectActions.add(nodeDisconnectAction); nodeDisconnectActionNodes.put(nodeDisconnectAction, node); nodeNodeDisconnectActions.put(node, nodeDisconnectAction); } @@ -868,6 +916,7 @@ public class SwingInterface implements CoreListener, LoggingListener { public void nodeAdded(Node node) { logger.log(Level.INFO, "node added: " + node); nodeList.add(node); + logger.log(Level.FINE, "nodeList.size(): " + nodeList.size()); manageNodesDialog.setNodeList(nodeList); rebuildNodeActions(nodeList); mainWindow.refreshNodeMenuItems(); @@ -906,6 +955,17 @@ public class SwingInterface implements CoreListener, LoggingListener { /** * {@inheritDoc} */ + public void nodeConnectionFailed(Node node, Throwable cause) { + Action nodeConnectAction = nodeNodeConnectActions.get(node); + nodeConnectActions.add(nodeConnectAction); + mainWindow.setStatusBarText(I18n.get("mainWindow.statusBar.connectionToNodeFailed", node.getName(), node.getHostname(), node.getPort(), (cause != null) ? cause.getMessage() : "no reason given")); + JOptionPane.showMessageDialog(mainWindow, I18n.get("mainWindow.error.nodeConnectionFailed.message", node.getName(), node.getHostname(), node.getPort(), (cause != null) ? cause.getMessage() : "no reason given"), I18n.get("mainWindow.error.nodeConnectionFailed.title"), JOptionPane.ERROR_MESSAGE); + mainWindow.refreshNodeMenuItems(); + } + + /** + * {@inheritDoc} + */ public void nodeDisconnected(Node node, Throwable throwable) { Action nodeConnectAction = nodeNodeConnectActions.get(node); nodeConnectActions.add(nodeConnectAction); @@ -918,18 +978,26 @@ public class SwingInterface implements CoreListener, LoggingListener { /** * {@inheritDoc} */ - public void requestAdded(Node node, Request request) { - logger.log(Level.INFO, "request added to node: " + request + ", " + node); + public void requestAdded(Request request) { + logger.log(Level.INFO, "request added to node: " + request + ", " + request.getNode()); /* TODO - implement */ + requestTableModel.addRequest(request); } /** * {@inheritDoc} */ - public void requestProgressed(Request request, int totalBlocks, int requiredBlocks, int successfulBlocks, int failedBlocks, int fatallyFailedBlocks, boolean finalizedTotal) { + public void requestProgressed(Request request) { /* TODO - update table model */ } + /** + * @see net.pterodactylus.jsite.core.CoreListener#requestRemoved(net.pterodactylus.jsite.core.Request) + */ + public void requestRemoved(Request request) { + requestTableModel.removeRequest(request); + } + // // INTERFACE LoggingListener //