import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JDialog;
-import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
+import net.pterodactylus.jsite.core.Core;
import net.pterodactylus.jsite.core.Node;
import net.pterodactylus.jsite.i18n.I18n;
import net.pterodactylus.jsite.main.Version;
*/
public class ManageNodesDialog extends JDialog implements ListSelectionListener {
+ /** The core. */
+ private final Core core;
+
/** The original list of nodes. */
private List<Node> originalNodeList;
/**
* Creates a new node manager dialog.
*
- * @param parentFrame
- * The parent frame of the dialog
+ * @param swingInterface
+ * The Swing interface
*/
- public ManageNodesDialog(JFrame parentFrame) {
- super(parentFrame, I18n.get("manageNodesDialog.title") + " – jSite " + Version.getVersion(), true);
+ public ManageNodesDialog(SwingInterface swingInterface) {
+ super(swingInterface.getMainWindow(), I18n.get("manageNodesDialog.title") + " – jSite " + Version.getVersion(), true);
+ this.core = swingInterface.getCore();
initActions();
initComponents();
initDialogs();
private void deleteNodes() {
Object[] selectedNodes = nodeList.getSelectedValues();
for (Object node: selectedNodes) {
- nodeListModel.removeNode((Node) node);
+ Node selectedNode = (Node) node;
+ if (core.isNodeConnected(selectedNode)) {
+ int response = JOptionPane.showConfirmDialog(this, I18n.get("manageNodesDialog.error.nodeConnected.message", selectedNode.getName()), I18n.get("manageNodesDialog.error.nodeConnected.title"), JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE);
+ if (response == JOptionPane.CANCEL_OPTION) {
+ break;
+ } else if (response == JOptionPane.NO_OPTION) {
+ continue;
+ }
+ }
+ nodeListModel.removeNode(selectedNode);
}
nodeList.clearSelection();
}
//
/**
+ * Returns the core that is controlled by the Swing interface.
+ *
+ * @return The core
+ */
+ Core getCore() {
+ return core;
+ }
+
+ /**
+ * Returns the main window of the Swing interface.
+ *
+ * @return The main window
+ */
+ MainWindow getMainWindow() {
+ return mainWindow;
+ }
+
+ /**
* Returns the “manage nodes” action.
*
* @return The “manage nodes” action
*/
- public Action getManageNodesAction() {
+ Action getManageNodesAction() {
return manageNodesAction;
}
*
* @return The “connect to node” action
*/
- public Action getNodeConnectAction() {
+ Action getNodeConnectAction() {
return nodeConnectAction;
}
*
* @return The “disconnect from node” action
*/
- public Action getNodeDisconnectAction() {
+ Action getNodeDisconnectAction() {
return nodeDisconnectAction;
}
* Initializes all child dialogs.
*/
private void initDialogs() {
- manageNodesDialog = new ManageNodesDialog(mainWindow);
+ manageNodesDialog = new ManageNodesDialog(this);
}
/**