+ void addNode(Node node) {
+ JMenu newNodeMenu = new JMenu(node.getName());
+ nodeMenus.put(node, newNodeMenu);
+ newNodeMenu.add(swingInterface.getNodeConnectAction(node));
+ newNodeMenu.add(swingInterface.getNodeDisconnectAction(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);
+ }
+
+ /**
+ * Adds a project to the project pane.
+ *
+ * @param project
+ * The project to add
+ * @param switchToProject
+ * <code>true</code> to switch to the new panel,
+ * <code>false</code> to not change the current panel
+ */
+ void addProject(Project project, boolean switchToProject) {
+ ProjectPanel projectPanel = new ProjectPanel(swingInterface, project);
+ int newTabIndex = projectPane.getTabCount();
+ projectPane.add(project.getName(), projectPanel);
+ projectPane.setToolTipTextAt(newTabIndex, project.getDescription());
+ project.addPropertyChangeListener(this);
+ if (switchToProject) {
+ projectPane.setSelectedIndex(newTabIndex);