- void refreshNodeMenuItems() {
- connectMenu.removeAll();
- for (Action nodeConnectAction: swingInterface.getNodeConnectActions()) {
- connectMenu.add(nodeConnectAction);
- }
- if (connectMenu.getMenuComponentCount() == 0) {
- JMenuItem noNodeAvailableItem = new JMenuItem(I18n.get("mainWindow.menu.connectNoNodeAvailable.name"));
- noNodeAvailableItem.setEnabled(false);
- connectMenu.add(noNodeAvailableItem);
- }
- disconnectMenu.removeAll();
- for (Action nodeDisconnectAction: swingInterface.getNodeDisconnectActions()) {
- disconnectMenu.add(nodeDisconnectAction);
- }
- if (disconnectMenu.getMenuComponentCount() == 0) {
- JMenuItem noNodeAvailableItem = new JMenuItem(I18n.get("mainWindow.menu.disconnectNoNodeAvailable.name"));
- noNodeAvailableItem.setEnabled(false);
- disconnectMenu.add(noNodeAvailableItem);
- }
+ void addNode(Node node) {
+ JMenu newNodeMenu = new JMenu(node.getName());
+ nodeMenus.put(node, newNodeMenu);
+ newNodeMenu.add(swingInterface.getNodeConnectAction(node));
+ newNodeMenu.add(swingInterface.getNodeDisconnectAction(node));
+ newNodeMenu.addSeparator();
+ newNodeMenu.add(swingInterface.getNodeEditAction(node));
+ newNodeMenu.add(swingInterface.getNodeDeleteAction(node));
+ nodeMenu.add(newNodeMenu);
+ NodeLabel nodeLabel = new NodeLabel(swingInterface, node, onlineIcon, offlineIcon, errorIcon);
+ nodeLabels.put(node, nodeLabel);
+ statusBar.addSideComponent(nodeLabel);
+ node.addPropertyChangeListener(this);
+ }
+
+ /**
+ * Removes a node from the menu.
+ *
+ * @param node
+ * The node to remove
+ */
+ void removeNode(Node node) {
+ nodeMenu.remove(nodeMenus.remove(node));
+ statusBar.removeSideComponent(nodeLabels.remove(node));
+ node.removePropertyChangeListener(this);