X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fde%2Ftodesbaum%2Fjsite%2Fgui%2FNodeManagerPage.java;h=49c25bc21fbd803d8950217a3fbd5c9c55c41528;hb=593eba180ca6538a680810651f127fbcf0a620a3;hp=e73ce2679f26314141f0e1435dca2ebf8490582a;hpb=c16a49102239ccaf1eadd1c9a7a8d2bbd7bf3e4b;p=jSite.git
diff --git a/src/de/todesbaum/jsite/gui/NodeManagerPage.java b/src/de/todesbaum/jsite/gui/NodeManagerPage.java
index e73ce26..49c25bc 100644
--- a/src/de/todesbaum/jsite/gui/NodeManagerPage.java
+++ b/src/de/todesbaum/jsite/gui/NodeManagerPage.java
@@ -1,6 +1,5 @@
/*
- * jSite-0.7 -
- * Copyright (C) 2006 David Roden
+ * jSite - NodeManagerPage.java - Copyright © 2006â2012 David Roden
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -62,7 +61,7 @@ import de.todesbaum.util.swing.TWizardPage;
/**
* Wizard page that lets the user edit his nodes.
- *
+ *
* @author David âBombeâ Roden <bombe@freenetproject.org>
*/
public class NodeManagerPage extends TWizardPage implements ListSelectionListener, DocumentListener, ChangeListener {
@@ -93,7 +92,7 @@ public class NodeManagerPage extends TWizardPage implements ListSelectionListene
/**
* Creates a new node manager wizard page.
- *
+ *
* @param wizard
* The wizard this page belongs to
*/
@@ -104,6 +103,7 @@ public class NodeManagerPage extends TWizardPage implements ListSelectionListene
setDescription(I18n.getMessage("jsite.node-manager.description"));
I18nContainer.getInstance().registerRunnable(new Runnable() {
+ @Override
public void run() {
setHeading(I18n.getMessage("jsite.node-manager.heading"));
setDescription(I18n.getMessage("jsite.node-manager.description"));
@@ -113,7 +113,7 @@ public class NodeManagerPage extends TWizardPage implements ListSelectionListene
/**
* Adds a listener for node manager events.
- *
+ *
* @param nodeManagerListener
* The listener to add
*/
@@ -123,7 +123,7 @@ public class NodeManagerPage extends TWizardPage implements ListSelectionListene
/**
* Removes a listener for node manager events.
- *
+ *
* @param nodeManagerListener
* The listener to remove
*/
@@ -133,7 +133,7 @@ public class NodeManagerPage extends TWizardPage implements ListSelectionListene
/**
* Notifies all listeners that the node configuration has changed.
- *
+ *
* @param nodes
* The new list of nodes
*/
@@ -144,11 +144,24 @@ public class NodeManagerPage extends TWizardPage implements ListSelectionListene
}
/**
+ * Notifies all listeners that a new node was selected.
+ *
+ * @param node
+ * The newly selected node
+ */
+ protected void fireNodeSelected(Node node) {
+ for (NodeManagerListener nodeManagerListener : nodeManagerListeners) {
+ nodeManagerListener.nodeSelected(node);
+ }
+ }
+
+ /**
* Creates all actions.
*/
private void createActions() {
addNodeAction = new AbstractAction(I18n.getMessage("jsite.node-manager.add-node")) {
+ @Override
@SuppressWarnings("synthetic-access")
public void actionPerformed(ActionEvent actionEvent) {
addNode();
@@ -157,6 +170,7 @@ public class NodeManagerPage extends TWizardPage implements ListSelectionListene
deleteNodeAction = new AbstractAction(I18n.getMessage("jsite.node-manager.delete-node")) {
+ @Override
@SuppressWarnings("synthetic-access")
public void actionPerformed(ActionEvent actionEvent) {
deleteNode();
@@ -166,6 +180,7 @@ public class NodeManagerPage extends TWizardPage implements ListSelectionListene
I18nContainer.getInstance().registerRunnable(new Runnable() {
+ @Override
public void run() {
addNodeAction.putValue(Action.NAME, I18n.getMessage("jsite.node-manager.add-node"));
deleteNodeAction.putValue(Action.NAME, I18n.getMessage("jsite.node-manager.delete-node"));
@@ -227,6 +242,7 @@ public class NodeManagerPage extends TWizardPage implements ListSelectionListene
I18nContainer.getInstance().registerRunnable(new Runnable() {
+ @Override
public void run() {
nodeInformationLabel.setText("" + I18n.getMessage("jsite.node-manager.node-information") + "");
nodeNameLabel.setText(I18n.getMessage("jsite.node-manager.name") + ":");
@@ -249,7 +265,7 @@ public class NodeManagerPage extends TWizardPage implements ListSelectionListene
/**
* Sets the node list.
- *
+ *
* @param nodes
* The list of nodes
*/
@@ -264,7 +280,7 @@ public class NodeManagerPage extends TWizardPage implements ListSelectionListene
/**
* Returns the node list.
- *
+ *
* @return The list of nodes
*/
public Node[] getNodes() {
@@ -277,7 +293,7 @@ public class NodeManagerPage extends TWizardPage implements ListSelectionListene
/**
* Returns the currently selected node.
- *
+ *
* @return The selected node, or null
if no node is selected
*/
private Node getSelectedNode() {
@@ -286,7 +302,7 @@ public class NodeManagerPage extends TWizardPage implements ListSelectionListene
/**
* Updates node name or hostname when the user types into the textfields.
- *
+ *
* @see #insertUpdate(DocumentEvent)
* @see #removeUpdate(DocumentEvent)
* @see #changedUpdate(DocumentEvent)
@@ -331,6 +347,7 @@ public class NodeManagerPage extends TWizardPage implements ListSelectionListene
private void addNode() {
Node node = new Node("localhost", 9481, I18n.getMessage("jsite.node-manager.new-node"));
nodeListModel.addElement(node);
+ deleteNodeAction.setEnabled(nodeListModel.size() > 1);
wizard.setNextEnabled(true);
fireNodesUpdated(getNodes());
}
@@ -346,9 +363,12 @@ public class NodeManagerPage extends TWizardPage implements ListSelectionListene
if (JOptionPane.showConfirmDialog(wizard, I18n.getMessage("jsite.node-manager.delete-node.warning"), null, JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE) == JOptionPane.CANCEL_OPTION) {
return;
}
+ int nodeIndex = nodeListModel.indexOf(node);
nodeListModel.removeElement(node);
nodeList.repaint();
+ fireNodeSelected((Node) nodeListModel.get(Math.min(nodeIndex, nodeListModel.size() - 1)));
fireNodesUpdated(getNodes());
+ deleteNodeAction.setEnabled(nodeListModel.size() > 1);
wizard.setNextEnabled(nodeListModel.size() > 0);
}
@@ -359,6 +379,8 @@ public class NodeManagerPage extends TWizardPage implements ListSelectionListene
/**
* {@inheritDoc}
*/
+ @Override
+ @SuppressWarnings("null")
public void valueChanged(ListSelectionEvent e) {
Object source = e.getSource();
if (source instanceof JList) {
@@ -369,7 +391,7 @@ public class NodeManagerPage extends TWizardPage implements ListSelectionListene
nodeNameTextField.setEnabled(enabled);
nodeHostnameTextField.setEnabled(enabled);
nodePortSpinner.setEnabled(enabled);
- deleteNodeAction.setEnabled(enabled);
+ deleteNodeAction.setEnabled(enabled && (nodeListModel.size() > 1));
if (enabled) {
nodeNameTextField.setText(node.getName());
nodeHostnameTextField.setText(node.getHostname());
@@ -390,6 +412,7 @@ public class NodeManagerPage extends TWizardPage implements ListSelectionListene
/**
* {@inheritDoc}
*/
+ @Override
public void insertUpdate(DocumentEvent e) {
updateTextField(e);
}
@@ -397,6 +420,7 @@ public class NodeManagerPage extends TWizardPage implements ListSelectionListene
/**
* {@inheritDoc}
*/
+ @Override
public void removeUpdate(DocumentEvent e) {
updateTextField(e);
}
@@ -404,6 +428,7 @@ public class NodeManagerPage extends TWizardPage implements ListSelectionListene
/**
* {@inheritDoc}
*/
+ @Override
public void changedUpdate(DocumentEvent e) {
updateTextField(e);
}
@@ -415,6 +440,7 @@ public class NodeManagerPage extends TWizardPage implements ListSelectionListene
/**
* {@inheritDoc}
*/
+ @Override
public void stateChanged(ChangeEvent e) {
Object source = e.getSource();
Node selectedNode = getSelectedNode();
@@ -425,6 +451,7 @@ public class NodeManagerPage extends TWizardPage implements ListSelectionListene
JSpinner sourceSpinner = (JSpinner) source;
if ("node-port".equals(sourceSpinner.getName())) {
selectedNode.setPort((Integer) sourceSpinner.getValue());
+ fireNodeSelected(selectedNode);
nodeList.repaint();
}
}